Версия 1.0
Автор: Самунь Виктор ([email protected])
Ревью выполнили: [Азовсков Сергей] (https://github.com/last-g), [Берсенёв Александр] (https://github.com/alexbers)
Данное приложение является реализацией игры «Сапёр» и может быть использовано как по прямому назначению, так и в качестве reference solution.
- Python версии не ниже 3.4
- PyQt версии 5 с установленным QtWebKit (для *nix-систем нужно устанавливать отдельно) для запуска графической версии
- Консольная версия:
cmines.py
- Графическая версия:
mines.py
- Файл настроек:
settings.ini
- Модули:
minesweeper/
- Изображения:
pictures/
- Тесты:
tests/
Для запуска тестов можно использовать runtest.sh
(нужен bash
, coverage3
)
Справка по запуску: ./cmines.py --help
Пример запуска: ./cmines.py -i
Справка по командам: help [команда]
Справка по запуску: ./mines.py --help
Пример запуска: ./mines.py
Модули, отвечающие за логику игры, расположены в пакете minesweeper.
В основе всего лежат класс game.Field
, реализующий хранение игрового поля и
класс game.GameState
, реализующий хранение и изменение состояния игрового поля.
Класс driver.Minesweeper
(«драйвер») позволяет создавать игры и управлять
игровыми состояниями, в т.ч. поддерживается undo/redo. Обо всех изменениях
«драйвер» сообщает посредством событий, на которые можно подписываться.
За работу скорборда отвечает класс driver.Scoreboard
.
На данные модули (game
, driver
) написаны тесты, их можно найти в tests/
.
Покрытие по строкам составляет около 99%:
minesweeper/driver 320 6 98% 218, 222-224, 234-235, 440
minesweeper/game 173 0 100%
Приложение поддерживает отладочный режим, в логах можно видеть всю необходимую информацию о работе приложения, возникающих ошибках и используемых стратегиях восстановления. Более подробно о запуске отладочного режима см. справку.