- 20, Oct 2024
- #1
Напишите программу для игры в Подключить 4. Вам предоставляется состояние доски в качестве входных данных, и вы должны решить, в какой столбец поместить свою фигуру, чтобы либо получить 4 фигуры подряд (по горизонтали, вертикали или диагонали), либо помешать противнику сделать то же самое.
Доска представляет собой массив 6x7, где каждая ячейка может быть пустой (« »), содержать вашу фигуру («X») или фигуру вашего противника («O»). Пример платы:
X O X OOO XOX OXOX
Вам следует играть в столбце 3 (столбцы от 0 до 6, пронумерованы слева) для диагонального выигрыша. Итак, вы выводите:
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Ваш код должен выводить номер столбца и удовлетворять следующим критериям:
- Нельзя играть в столбце, в котором уже 6 фигур.
- Если есть хотя бы один выигрышный ход, необходимо сделать один из них.
- Если вы можете помешать противнику выиграть на следующем ходу, вы должны это сделать.
Обратите внимание, что оптимальная игра не обязательна, вам нужно только получить немедленную победу или предотвратить немедленную победу вашего противника. Если у вашего противника есть несколько способов победить, вам не нужно блокировать ни один из них.
Вам предоставляется доска на стандартном вводе, и вы должны напечатать номер столбца, в котором вы хотите играть, на стандартном выводе. Доска гарантированно будет хорошо сформирована (без дырок, хотя бы один возможный ход) и на ней еще не будет выигрыша ни для одного из игроков.
Самый короткий код выигрывает.
Пример 1
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Для победы вы должны сыграть в столбце 0 или 4.
Пример 2
X
O
X
O
OOO X
XXX O
Вы должны сыграть в столбце 3, чтобы заблокировать немедленную победу противника.
Пример 3
3
Вы не можете выиграть или помешать оппоненту выиграть, поэтому вы можете играть в любой столбец 1–6 (0 заполнен).
Пример 4
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Вы не можете играть в 3-й колонке, так как она позволяет противнику сразу выиграть. Вы можете играть в столбцах 1-2 или 4-6.
#код-гольф #настольная игра