Minesweeper
«Сапёр» (англ. Minesweeper) — игра-головоломка, главной задачей которой является найти все «заминированные» клетки.
Принцип игры: игровое поле разделено на квадраты, некоторые из которых «заминированы». Целью игры является открытие всех ячеек, не содержащих мины. Игрок открывает ячейки, стараясь не открыть ячейку с миной. Открыв ячейку с миной, он проигрывает. Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с только что открытой, «заминировано»; используя эти числа, игрок пытается рассчитать расположение мин. Если под соседними ячейками тоже нет мин, то открывается некоторая «не заминированная» область до ячеек, в которых есть цифры. «Заминированные» ячейки игрок может пометить флажком, чтобы случайно не открыть их. Открыв все «не заминированные» ячейки, игрок выигрывает.
Основные функциональные требования к игре:
1.Изначально body в файле index.html должен быть пустым (допускается только тег script), все необходимые элементы генерируются с помощью JS
2.Размер игрового поля по умолчанию - 10x10 с 10 минами.
3.Игрок должен иметь возможность нажимать на ячейки, чтобы раскрыть их. Если ячейка содержит мину, игра заканчивается. Если в ячейке нет мины, то должно отображаться количество мин в окружающих ячейках. игра должна закончиться, когда игрок раскроет все клетки, не содержащие мин (победа), или щелкнет на мине (поражение). При успешном решении игры вывести на экран сообщение: "Ура! Вы выиграли!" или "Игра окончена. Попробуйте еще раз".
4.Игрок должен иметь возможность отмечать клетки флажком, чтобы указать на наличие мины. Флажки можно установить правой кнопкой мыши.
5.Возможность перезапуска игры без перезагрузки страницы (нажатием на кнопку "Новая игра")
6.Отображать секунды продолжительности игры.
7.Если пользователь открывает клетку, не касающуюся мин, то она становится пустой, а соседние клетки автоматически открываются во всех направлениях, пока не будут достигнуты клетки, содержащие цифры.
8.Игра должна включать звуковые эффекты для таких событий, как раскрытие ячейки, установка флажка на ячейку, завершение игры (победа и поражение).
9.Игрок должен иметь возможность выбора уровня сложности (легкий, средний, трудный), при котором изменяется размер игрового поля и количество мин.