Игра «Реверси» · Шаг 2 из 5
Поставить и перевернуть
Что перевернётся, уже известно. Осталось сделать сам ход: положить фишку и перекрасить зажатые. Строку в Python поменять нельзя — её можно только собрать заново, поэтому новое поле собирается целиком, а старое остаётся каким было.
Что сделать
Сделайте ход: соберите новое поле с поставленной фишкой и перевёрнутыми чужими.
Что приходит
pole— поле списком строк:".","B","W"; менять его нельзяstrokaиstolbec— куда ставят фишкуperevernut— клетки(строка, столбец), которые переходят к игрокуkto— чья фишка:"B"или"W"
Что вернуть
Новое поле — новый список строк, где в клетке хода и во всех клетках perevernut стоит kto.
Допишите функцию postavit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт postavit на каждый ход и рисует то поле, которое вы вернули. Решите шаг — и зажатые фишки станут переворачиваться.
Без этого шага: фишка ставится, но ничего не переворачивает.
Чёрные ставят фишку в угол (0, 0) поля 4×4 и переворачивают белую (1, 1): новое поле — ["B...", ".B..", "..B.", "...."], а то, что пришло, не изменилось.
postavit(["....", ".W..", "..B.", "...."], 0, 0, [(1, 1)], "B")
['B...', '.B..', '..B.', '....']
Функция получает поле — список строк одной длины, — клетку хода, список клеток, которые перевернутся (его считает шаг 1), и знак игрока.
Возвращает новый список строк того же размера: в клетке хода и во всех клетках из perevernut — знак kto, остальное как было. Переданный список менять нельзя — оболочке нужно прежнее поле.
perevernut может быть пустым: тогда меняется одна клетка хода.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.