Задачка в портфолио Frontend: Сапёр

Среди Frontend-разработчиков распространены следующие проекты: Калькулятор, TODO List, Магазин, Список покупок, Сайт Визитка. Реализаций столько, что начинающим программистам достаточно открыть первую страницу Google и скопировать тот проект, который понравится больше всего. К сожалению, если вы копируете код без понимания, это быстро вскрывается на собеседовании. Мы, интервьюеры, почти всегда просматриваем Github потенциального кандидата и если там один проект калькулятор или список задач, то мгновенно закрываем его.

Если вы хотите продемонстрировать свои навыки и умения, надо выделяться на фоне остальных. Предлагаю реализовать проект "Сапёр". Плюсом будет, если вы развернёте его на Github Pages и будет возможность не только изучить ваш код, но и насладиться игрой :)

Правила известны: Игроку показывается поле вида NxN с закрытыми ячейками. При нажатии левой кнопкой мыши на ячейку - она открывается (желательно, чтобы первая всегда открывалась, а не взрывалась). Открытая ячейка может быть в одном из трёх состояний:

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

Дальше подключайте фантазию, добавьте очки, возможность задавать размер поля, уровень сложности, таймер.