Ctrl K

Открыть клетку на минном поле

Средняя
Поле игры в «Сапёра» задано матрицей символов field: - 'M' — закрытая мина; - 'E' — закрытая пустая клетка; - 'B' — открытая клетка, рядом с которой нет мин (соседи — 8 клеток вокруг, включая диагональные); - цифра от '1' до '8' — открытая клетка, рядом с которой столько мин. Игрок нажимает на закрытую клетку cell = [row, col]. Верните поле после этого хода: - если это мина 'M', она становится 'X', и больше ничего не меняется; - если это пустая клетка, рядом с которой есть мины, на ней появляется их количество; - если рядом мин нет, клетка становится 'B', и так же открываются все её закрытые пустые соседи — и дальше по цепочке.
Пример 1
field=[['E', 'E', 'E'], ['E', 'E', 'E'], ['E', 'E', 'M']], cell=[0, 0] → [['B', 'B', 'B'], ['B', '1', '1'], ['B', '1', 'M']]

Рядом с (0, 0) мин нет — она становится 'B', и раскрытие расходится дальше. Клетки рядом с миной получают '1', сама мина остаётся закрытой.

Пример 2
field=[['E', 'M'], ['M', 'E']], cell=[0, 0] → [['2', 'M'], ['M', 'E']]

У клетки две соседние мины — она становится '2', дальше ничего не открывается.

Пример 3
field=[['B', '1', 'E'], ['B', '1', 'M']], cell=[1, 2] → [['B', '1', 'E'], ['B', '1', 'X']]

Открыта мина — она превращается в 'X', игра окончена.

Ограничения
  • 1 ≤ число строк, число столбцов ≤ 50
  • Клетки поля — 'M', 'E', 'B' или цифры от '1' до '8'
  • cell указывает на клетку поля, в которой 'M' или 'E'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяДождь стекает в оба моря СредняяОстановится ли шарик в цели СредняяКратчайший путь катящегося шарика Средняя
загружаем Python…
Вход
field=[['E', 'E', 'E'], ['E', 'E', 'E'], ['E', 'E', 'M']], cell=[0, 0]
Ожидается
[['B', 'B', 'B'], ['B', '1', '1'], ['B', '1', 'M']]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 122 теста на сервере, включая скрытые.