Войдите, чтобы продолжить.
Игра «Крестики-нолики» · Шаг 1 из 5
Поставить знак
Поле — три ряда по три клетки, вложенные списки: «.» — свободно, «X» и «O» — знаки. Щелчок ставит знак в клетку. Только в свободную — и так, чтобы прежнее поле осталось как было: боту, который будет перебирать ходы, нужно пробовать их на копиях.
Что сделать
Поставьте знак в клетку — только в свободную и не трогая прежнее поле.
Что приходит
pole— поле, список рядов:"."— свободно,"X"и"O"— знакиstrokaиstolbec— клетка, номера с нуляznak—"X"или"O"
Что вернуть
Пару: клетка есть и свободна — (новое поле со знаком, True), иначе — (pole, False); новое поле — отдельная копия.
Допишите функцию postavit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт postavit на ваш щелчок и на ход бота. False значит, что ход не состоялся: щелчок по занятой клетке ничего не делает. Решите шаг — и знаки перестанут затирать друг друга.
Без этого шага: знак ставится и в занятую клетку.
postavit([[".", ".", "."], [".", "X", "."], [".", ".", "."]], 0, 2, "O")
([['.', '.', 'O'], ['.', 'X', '.'], ['.', '.', '.']], True)
Функция принимает поле — список рядов, каждый ряд — список клеток («.», «X» или «O»), — номер ряда, номер столбца (с нуля) и знак.
Если клетка есть на поле и свободна, возвращает пару: новое поле со знаком в этой клетке и True. Иначе — переданное поле как есть и False.
Переданное поле не меняется, и новое с ним не связано: правка нового поля не трогает старое. Поле может быть любого размера.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.