Войдите, чтобы продолжить.
Игра «Сапёр» · Шаг 5 из 5
Аккорд
Опытные сапёры не открывают клетки по одной. Если вокруг открытой «двойки» уже стоят два флажка, остальные её соседи точно без мин — щелчок по самой «двойке» открывает их все разом. Это называется аккордом.
Что сделать
Сделайте аккорд — щелчок по открытому числу открывает всех соседей без флажков разом.
Что приходит
strokaиstolbec— открытая клетка, по которой щёлкнулиchisla— поле чисел,-1— минаflagi— клетки с флажкамиotkryto— уже открытые клетки
Что вернуть
Соседей без флажков и ещё не открытых, по рядам и столбцам, — если флажков вокруг ровно столько, каково число; иначе [].
Допишите функцию akkord в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт akkord, когда вы щёлкаете по уже открытой клетке. Флажки ставятся щелчком после пробела. Решите шаг — и разминировать можно будет быстро, по несколько клеток за щелчок.
Без этого шага: «аккорда» нет — щелчок по открытому числу ничего не делает.
У «единицы» в (1, 1) один флажок рядом — на мине (0, 0). Флажков столько же, сколько число, и остальные семь соседей открываются разом.
akkord(1, 1, [[-1, 1, 0], [1, 1, 0], [0, 0, 0]], [(0, 0)], [(1, 1)])
[(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1), (2, 2)]
Функция принимает клетку (ряд, столбец), поле чисел (−1 — мина), список клеток с флажками и список открытых клеток. Если клетка открыта, её число больше нуля и флажков среди её соседей (из восьми) ровно столько, каково число, — возвращает список соседей без флажков и ещё не открытых, по рядам и столбцам. Иначе — пустой список. Флажок может стоять и не на мине: функция верит флажкам — если человек ошибся, аккорд откроет мину.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.