field:
- 'M' — закрытая мина;
- 'E' — закрытая пустая клетка;
- 'B' — открытая клетка, рядом с которой нет мин (соседи — 8 клеток вокруг, включая диагональные);
- цифра от '1' до '8' — открытая клетка, рядом с которой столько мин.
Игрок нажимает на закрытую клетку cell = [row, col]. Верните поле после этого хода:
- если это мина 'M', она становится 'X', и больше ничего не меняется;
- если это пустая клетка, рядом с которой есть мины, на ней появляется их количество;
- если рядом мин нет, клетка становится 'B', и так же открываются все её закрытые пустые соседи — и дальше по цепочке.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', сама мина остаётся закрытой.
field=[['E', 'M'], ['M', 'E']], cell=[0, 0] → [['2', 'M'], ['M', 'E']]
У клетки две соседние мины — она становится '2', дальше ничего не открывается.
field=[['B', '1', 'E'], ['B', '1', 'M']], cell=[1, 2] → [['B', '1', 'E'], ['B', '1', 'X']]
Открыта мина — она превращается в 'X', игра окончена.
'M', 'E', 'B' или цифры от '1' до '8'cell указывает на клетку поля, в которой 'M' или 'E'field=[['E', 'E', 'E'], ['E', 'E', 'E'], ['E', 'E', 'M']], cell=[0, 0]
[['B', 'B', 'B'], ['B', '1', '1'], ['B', '1', 'M']]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 122 теста на сервере, включая скрытые.