printЗанятие 18

printA. Международный Васюкинский турнир 19** года

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Фантазия великого комбинатора сбылась  – в городе Васюки (Калмыкия) через 3 часа должен начаться международный шахматный турнир. "Сотни тысяч людей, богато обеспеченных людей, устремились в Васюки… По фуникулерам подымаются в город мордатые иностранцы, шахматные леди, австралийские поклонники индийской защиты, индусы в белых тюрбанах  – приверженцы испанской партии, немцы, французы, новозеландцы, жители бассейна реки Амазонки и, завидующие васюкинцам, – москвичи, ленинградцы, киевляне, сибиряки и одесситы…" Для того, чтобы все желающие могли наблюдать за ходом турнира, из Японии был доставлен огромный экран (размером 98x167 метров) и специальный контроллер-компьютер для него. Но во время транспортировки потерялась маленькая дискета с программным обеспечением. Ваша задача  – к началу шахматного турнира написать новую программу для управления контроллером экрана.
В программу поступает информация о ходах, сделанных гроссмейстерами; результатом работы программы является изображение доски, передаваемое в контроллер для отображения на экране. Шахматная фигура на изображении обозначается двумя символами: первый символ  – тип фигуры (один из следующих: P-пешка, R-ладья, N-конь, B-слон, Q-ферзь, K-король), второй символ – цвет фигуры (w-белый, b-черный). Пустая черная клетка обозначается символами "//" (два знака деления), а пустая белая – ".." (две точки).
Во входном файле содержится несколько строк (ноль или более)  – последовательность ходов, сделанных из начальной позиции. В каждой строке информация об одном ходе: в нечетных строках – ходы гроссмейстера, играющего белыми, в четных  – черными. Информация о ходе имеет следующий синтаксис: обозначение вертикали (A-H) и горизонтали (1-8) клетки, из которой был сделан ход, затем знак – (при простом ходе) или : (при взятии фигуры, а также при взятии на проходе), затем обозначение вертикали и горизонтали конечной клетки, затем возможно следует указание фигуры, в которую превратилась пешка, дойдя до последней горизонтали. Исключение: короткая рокировка обозначается 0-0 (цифра 0), а длинная  – 0-0-0. Примеры ходов: E2-E4, F7-F8Q, H1:H6, 0-0. Проверять правильность хода не требуется  – предполагается, что гроссмейстеры знают правила игры и ходят правильно.
В выходной файл вывести изображение доски после указанной последовательности ходов  – восемь строк по шестнадцать символов.

Пример ввода

E2-E4
E7-E5
F1-C4
B8-C6
D1-H5
G8-F6
H5:F7

Пример вывода

Rb//BbQbKbBb..Rb
PbPbPbPb//QwPbPb
..//Nb//..Nb..//
//..//..Pb..//..
..//Bw//Pw//..//
//..//..//..//..
PwPwPwPw..PwPwPw
RwNwBw..Kw..NwRw
Примечание для тех, кто знает о шахматах меньше, чем О.Бендер. Начальная позиция в шахматах и нумерация горизонталей и вертикалей:
    8  RbNbBbQbKbBbNbRb
    7  PbPbPbPbPbPbPbPb
    6  ..//..//..//..//
    5  //..//..//..//..
    4  ..//..//..//..//
    3  //..//..//..//..
    2  PwPwPwPwPwPwPwPw
    1  RwNwBwQwKwBwNwRw

       A B C D E F G H
Рокировка: один раз в партии, если король и ладья еще не ходили, поля доски между ними свободны и король не атакован, может быть сделан одновременный ход короля и ладьи  – рокировка: король передвигается в сторону ладьи через поле (соответственно вправо или влево), а ладья переносится через короля и ставится рядом с ним. Рокировка с ближней ладьей (вертикаль H) называется короткой и обозначается 0-0, c дальней (вертикаль A) – длинной (0-0-0).
Взятие на проходе: если пешка, делая двойной ход, проходит мимо поля, находящегося под ударом пешки противника, она может быть взята этой пешкой "на проходе"; взявшая пешка передвигается по диагонали на поле, пройденное взятой пешкой. Двойной ход пешки возможен только из начального положения, например E2-E4.
loading