- •«Русские шашки»
- •Система обозначений
- •Расположением фигур на доске.
- •Последним сделанным ходом.
- •1. Расположение фигур на доске.
- •2. Сделанный ход.
- •Задача 1.1. «Архивация» (100 баллов)
- •Задача 1.2. «Разархивация» (100 баллов)
- •Задача 2. Определение сделанных ходов (200 баллов)
- •Задача 3. Взятие (200 баллов)
- •Задача 4. Проигрыш в два полухода (200 баллов)
- •Задача 5. Защита от дурака (200 баллов)
Задача 1.1. «Архивация» (100 баллов)
Как известно, возможна такая запись расположения фигур на доске, при которой сперва перечисляются поля, заданные белыми шашками, затем – поля, занятые белыми дамками, затем - поля, заданные чёрными шашками, затем – поля, занятые чёрными дамками. Во многих случаях такая запись получится короче той, что принята в наших задачах.
Сделать такую программу, которая переводит стандартную запись расположения в указанную выше.
Входные данные: расположение фигур на доске.
Выходные данные: четыре строки. В первой перечисляются поля с белыми шашками, во второй – с белыми дамками, в третьей – с чёрными шашками, в четвёртой – с чёрными дамками. В случае отсутствия фигур какого-либо вида выводится «*». В строках поля выводятся в алфавитном порядке. Если в одной вертикали несколько фигур, то поля выводятся в порядке возрастания номеров строк.
Примерные тесты:
Номер теста |
1 |
3 |
Входные данные |
0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 00000000 S0S0S0S0 0S0S0S0S S0S0S0S0 |
00000000 00s00000 00000000 00s00000 00000000 00s00000 0S000000 0000d000 |
Выходные данные |
A1A3B2C1C3D2E1E3F2G1G3H2 * A7B6B8C7D6D8E7F6F8G7H6H8 * |
B2 * C3C5C7 E1 |
Задача 1.2. «Разархивация» (100 баллов)
Сделать программу для решения задачи, обратной предыдущей.
Входные данные: четыре строки.
Выходные данные: расположение фигур на доске.
Примерные тесты:
Номер теста |
1 |
3 |
Входные данные |
A1A3B2C1C3D2E1E3F2G1G3H2 * A7B6B8C7D6D8E7F6F8G7H6H8 * |
B2 * C3C5C7 E1 |
Выходные данные |
0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 00000000 S0S0S0S0 0S0S0S0S S0S0S0S0 |
00000000 00s00000 00000000 00s00000 00000000 00s00000 0S000000 0000d000 |
Задача 2. Определение сделанных ходов (200 баллов)
Задаются два расположения фигур на доске. Сделать программу, определяющую, можно ли получить второе из первого с помощью 2-х полуходов, и, в случае возможности, выдающую эти ходы.
Также задаётся последний ход, в результате которого получилось первое положение. В случае, если ходов ещё не было (начальное положение) задаётся 0.
В случае, если это можно сделать разными способами, то выдать все варианты в порядке возрастания колонок и строк.
В случае невозможности перейти от первого ко второму расположению одним ходом, вывести 0.
Входные данные: первое расположение фигур на доске, последний ход, второе расположение фигур на доске.
Выходные данные: в первой строке – количество вариантов. Далее, столько строк, каково предыдущее число. В каждой строке два полухода, разделённых знаком «*». В случае невозможности, в первой строке 0.
Примерные тесты:
Номер теста |
1 |
2 |
3 |
Входные данные |
0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 00000000 S0S0S0S0 0S0S0S0S S0S0S0S0 0 0s0s0s0s s0s0s0s0 0s0s0s00 000000s0 0S000000 00S0S0S0 0S0S0S0S S0S0S0S0 |
0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 00000000 S0S0S0S0 0S0S0S0S S0S0S0S0 0 0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 00000000 00S0S0S0 0S0S0S0S S0S0S0S0 |
0000000s 00s00000 00000000 00s00000 00000000 00s00000 0S000000 0000d000 A5:C3 000D0000 000000s0 00000000 00000000 00000000 00000000 00000000 0000d000 |
Выходные данные |
1 A3-B4*H6-G5 |
0 |
1 B2:D4:B6:D8*H8-G7 |
