Задание на проект - GregSCooper2514/PyGameProjekt GitHub Wiki

Задание на проект
Цель проекта
Создать графическое десктопное приложение, которое реализует игру Minesweeper. Общая схема игры

  1. В начале игры игровое поле представляет собой прямоугольную клетчатую доску, все клетки на которой закрыты. Часть клеток содержит мины, часть – цифры, которые показывают число мин вокруг данной клетки, оставшиеяся клетки пусты.

  2. Пользователь начинает произвольно открывать закрытые клетки (нажатием в области клетки левой кнопки мыши).

  3. Если открытая клетка содержит мину, все мины на доске взрываются и игра заканчивается.

  4. Если открытая клетка содержит цифру, то открывается только эта клетка.

  5. Если открытая клетка пуста, то при нажатии на нее открывается область клеток, ограниченная клетками, которые содержат цифры.

  6. Далее пользователь продолжает открывать клетки, произвольно или исходя из информации, которую можно извлкчь, анализируя клетки с цифрами.

  7. Также можно нажатием правой кнопки мыши можно пометить закрытую клетку как содержащую мину.

  8. Игра заканчивается, если пользователь корректно пометил все клетки, содержащие мины, и открыл все остальные клетки, или если все мины взорвались.
    Требования к приложению

  9. При запуске программы в открывшем диалоговом окне пользователь может выбрать один из трех заданных режимов: • Beginner – поле 9 x 9, 10 мин • Intermediate – поле 16 x 16, 40 мин • Expert – поле 16 x 30, 99 мин Или задать свой (предельные значения – поле 24 X 30, 667 мин)

  10. Должны обрабатываться следующие действия пользователя: • Нажатие левой кнопки мыши: o если открытая клетка содержит мину, все мины на доске взрываются и игра заканчивается; o если открытая клетка содержит цифру, то открывается только эта клетка; o если открытая клетка пуста, то при нажатии на нее открывается область клеток, ограниченная клетками, которые содержат цифры. • Нажатие правой кнопки мыши: o если клетка закрыта, то на ней ставится пометка «мина»; o если клетка закрыта, и на ней уже стоит пометка «мина», пометка снимается; o во всех остальных случаях действие не обрабатывается. • Нажатие обоих кнопок мыши: Если клетка с цифрой открыта, и количество пометок «мина» на окружающих клетках равно цифре, то должны открыться все окружающие не помеченные клетки. Во всех остальных случаях не обрабатывается.

  11. Должно отображаться количество не найденных (не помеченных) мин.