Войти Создать аккаунт

Игра «Реверси» · Шаг 3 из 5

Куда можно пойти

Пойти в реверси можно не куда угодно, а только туда, где что-нибудь перевернётся. Этот список нужен игре трижды: подсказать игроку, не пустить его в негодную клетку и дать боту, из чего выбирать.

Что сделать

Соберите все клетки, куда игрок может пойти, — те, где шаг 1 что-нибудь переворачивает.

Что приходит

  • pole — поле списком строк: ".", "B", "W"

  • kto — за кого ищем ходы: "B" или "W"

  • zahvat — ваш шаг 1: zahvat(pole, stroka, stolbec, kto) даёт список клеток, которые перевернутся

Что вернуть

Список клеток (строка, столбец): пустые клетки, где zahvat вернул непустой список, — по строкам сверху вниз, в строке слева направо.

Допишите функцию vozmozhnye в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В игре

Игра зовёт vozmozhnye, чтобы нарисовать подсказки «+», чтобы не пустить щелчок в негодную клетку и чтобы дать боту варианты. Решите шаг — и пойти можно будет только туда, где что-нибудь перевернётся.

Без этого шага: ходить можно в любую пустую клетку рядом с фишкой — даже туда, где ничего не перевернётся.

Пример

Поле ["B.", ".."], вместо настоящего шага 1 — игрушка, которая «переворачивает» что-нибудь только в правом столбце. Пустых клеток три, в правом столбце из них две — (0, 1) и (1, 1): это и есть ответ.

В проверке игрушка записана так:
zahvat = lambda pole, s, c, kto: [(0, 0)] if c == 1 else [].

Готовая игра →

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.