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

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

Что перевернётся

В реверси фишку ставят так, чтобы зажать чужие между своими: по строке, по столбцу или по диагонали. Всё зажатое переворачивается и становится вашим. Прежде чем ставить, игра должна знать, что именно перевернётся, — иначе нечем ни ходить, ни подсказывать.

Что сделать

Найдите все чужие фишки, которые перевернутся, если поставить фишку в эту клетку.

Что приходит

  • pole — поле списком строк одной длины: "." — пусто, "B" — чёрная, "W" — белая

  • stroka и stolbec — куда ставят фишку; номера с нуля

  • kto — чья фишка: "B" или "W"

Что вернуть

Список клеток (строка, столбец), которые перевернутся, по возрастанию; клетка занята или зажать нечего — [].

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

В игре

Игра зовёт zahvat на каждый ход — свой и бота — и переворачивает то, что вы вернули. Решите шаг — и фишки станут переворачиваться по столбцам и диагоналям, а не только по строке.

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

Пример

На поле 4×4 чёрные ставят фишку в клетку (0, 1). Под ней белая (1, 1), а за белой — чёрная (2, 1): белая зажата и перевернётся — ответ [(1, 1)].

Тот же пример кодом
Вызов
zahvat(["....", ".WB.", ".BW.", "...."], 0, 1, "B")
Вернуть
[(1, 1)]

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

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

Обсуждение

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

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