Задание на проект - GregSCooper2514/PyGameProjekt GitHub Wiki
Задание на проект
Цель проекта
Создать графическое десктопное приложение, которое реализует игру Minesweeper.
Общая схема игры
-
В начале игры игровое поле представляет собой прямоугольную клетчатую доску, все клетки на которой закрыты. Часть клеток содержит мины, часть – цифры, которые показывают число мин вокруг данной клетки, оставшиеяся клетки пусты.
-
Пользователь начинает произвольно открывать закрытые клетки (нажатием в области клетки левой кнопки мыши).
-
Если открытая клетка содержит мину, все мины на доске взрываются и игра заканчивается.
-
Если открытая клетка содержит цифру, то открывается только эта клетка.
-
Если открытая клетка пуста, то при нажатии на нее открывается область клеток, ограниченная клетками, которые содержат цифры.
-
Далее пользователь продолжает открывать клетки, произвольно или исходя из информации, которую можно извлкчь, анализируя клетки с цифрами.
-
Также можно нажатием правой кнопки мыши можно пометить закрытую клетку как содержащую мину.
-
Игра заканчивается, если пользователь корректно пометил все клетки, содержащие мины, и открыл все остальные клетки, или если все мины взорвались.
Требования к приложению -
При запуске программы в открывшем диалоговом окне пользователь может выбрать один из трех заданных режимов: • Beginner – поле 9 x 9, 10 мин • Intermediate – поле 16 x 16, 40 мин • Expert – поле 16 x 30, 99 мин Или задать свой (предельные значения – поле 24 X 30, 667 мин)
-
Должны обрабатываться следующие действия пользователя: • Нажатие левой кнопки мыши: o если открытая клетка содержит мину, все мины на доске взрываются и игра заканчивается; o если открытая клетка содержит цифру, то открывается только эта клетка; o если открытая клетка пуста, то при нажатии на нее открывается область клеток, ограниченная клетками, которые содержат цифры. • Нажатие правой кнопки мыши: o если клетка закрыта, то на ней ставится пометка «мина»; o если клетка закрыта, и на ней уже стоит пометка «мина», пометка снимается; o во всех остальных случаях действие не обрабатывается. • Нажатие обоих кнопок мыши: Если клетка с цифрой открыта, и количество пометок «мина» на окружающих клетках равно цифре, то должны открыться все окружающие не помеченные клетки. Во всех остальных случаях не обрабатывается.
-
Должно отображаться количество не найденных (не помеченных) мин.