
- •«Русские шашки»
- •Система обозначений
- •Расположением фигур на доске.
- •Последним сделанным ходом.
- •1. Расположение фигур на доске.
- •2. Сделанный ход.
- •Задача 1.1. «Архивация» (100 баллов)
- •Задача 1.2. «Разархивация» (100 баллов)
- •Задача 2. Определение сделанных ходов (200 баллов)
- •Задача 3. Взятие (200 баллов)
- •Задача 4. Проигрыш в два полухода (200 баллов)
- •Задача 5. Защита от дурака (200 баллов)
Задача 3. Взятие (200 баллов)
Сделать программу, определяющую, сколько разных ходов с боем фигур противника может взять та сторона, чья очередь ходить.
Входные данные: текущее положение.
Выходные данные: одно число.
Примерные тесты:
Номер теста |
1 |
2 |
Входные данные |
0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 0S000000 00S0S0S0 0S0S0S0S S0S0S0S0 A3-B4 |
00000000 00S0S000 00000000 000000S0 000s0000 00S00000 00000000 0000d000 B2-C3 |
Выходные данные |
0 |
3 |
Задача 4. Проигрыш в два полухода (200 баллов)
Сделать программу, определяющую может ли сторона, чья очередь ходить, сделать такой ход, что в результате ответного хода может проиграть. Если да, то выдать количество таких ходов и все эти ходы, иначе выдать нуль.
Если таких ходов больше одного, они выдаются в порядке возрастания наименований колонок, номеров строк полей, откуда и куда надо ходить.
.
Входные данные: текущее положение.
Выходные данные: одно число и столько строк, каково это число. В каждой строке 1полуход, который может привести к мгновенному проигрышу.
Примерные тесты:
Номер теста |
1 |
2 |
3 |
Входные данные |
0s0s0s0s s0s0s0s0 0s0s0s0s 00000000 0S000000 00S0S0S0 0S0S0S0S S0S0S0S0 A3-B4 |
0D00000D 00000000 00000000 000000s0 00000000 00000000 00000000 d0000000 A7-B8 |
0000000D 00000000 00000000 000000s0 00000000 00000000 0d000000 00000000 G7-H8 |
Выходные данные |
0 |
2 A1-E5 A1-G7 |
2 A2-G7 |
Задача 5. Защита от дурака (200 баллов)
Дано два положения. Сделать программу, для проверки их на корректность, согласно правилам (количество фигур по видам, правильность их расстановки, форма и размеры доски, логика игры и прочее).
Входные данные: 2 текущих положения, разделённых строками «*».
Выходные данные: строка из 2-х символов (0, или 1), разделённых одним пробелом. 0 – корректное положение, 1 – нет.
Примерные тесты:
Номер теста |
1 |
2 |
3 |
Входные данные |
00000000 00000000 00S00000 00000000 0000000s 00000000 00000000 00000000 G3-H4 * 000000d0 00000000 00000000 00000000 00000000 00000000 00000000 0D000000 A2-B1 |
00000000 000000S0 00000000 00000000 00000000 00000000 00000000 0000s000 F2-E1 * 0000000d 00000000 00S00000 00000000 0000000s 00000000 00000000 S0000000 G7-A8 |
00000000 000000S0 00000000 00000000 00000000 00000000 00000000 0000s000 00000000 F2-E1 * 0000000d 00000000 00S000000 00000000 0000000s 00000000 00000000 S0000000 G7-A8 |
Выходные данные |
1 1 |
1 0 |
1 1 |