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

Игра «Сапёр» · Шаг 4 из 5

Открыть пустую область

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

Что сделать

Откройте клетку по щелчку — а если рядом пусто, растеките открытие по всей пустой области.

Что приходит

  • stroka и stolbec — куда щёлкнули

  • chisla — поле чисел из шага 3, -1 — мина

  • otkryto — список уже открытых клеток

Что вернуть

Клетки, открытые этим щелчком, по рядам и столбцам: сама клетка, а у нуля — соседи и дальше от каждого нуля; мина или уже открыта — [].

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

В игре

Игра зовёт otkryt на каждый щелчок по закрытой клетке. Решите шаг — и щелчок по пустому месту раскроет всю пустую область вместе с каёмкой из чисел.

Без этого шага: открывается только та клетка, по которой щёлкнули.

Пример

Щелчок по (0, 0): там ноль, и открываются соседи; среди них снова нули — открываются и их соседи. Всё расходится, пока не упрётся в числа. Мина в углу (3, 3) остаётся закрытой.

Тот же пример кодом
Вызов
otkryt(0, 0, [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 1, 1], [0, 0, 1, -1]], [])
Вернуть
[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2)]

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

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

Обсуждение

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

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