Qt версии 5.12 и соответствующий QtCreator.
Изначально есть 10 мин и 10 флажков. Поле 9х9 Время 180 секунд.
Описание классов MinesweeperModel - наследован от абстрактной модели и тут реализована логика работы с данными. CellData - содержит свойства ячейки. View.qml - содержит элементы HMI.
TableView - вид для модели MinesweeperModel boomdelegate - делегат TableView где, реализована простенькая анимация на основе ParticleSystem имитирующая взрыв. msdelegate - делегат TableView где, храниться данные для ячейки поля. PopupWindow - всплывающее окно которое появляется в случае проигрыша по истечению времени или в случае выигрыша.
Сапер тестировался на OS Win7 professional - 64 bit. В версии приложения под Windows использовалась иконка приложения.
Сама модель реализована так, что-бы при небходимости, при загрузке приложения можно было бы устанавливать размер поля. Еще раз убеждаюсь на примере, что добавлять что то своё в классику только портить. Первое что сделаю избавлюсь от уродского таймера и сделаю отсчет времени в обратном порядке, а сам элемент можно сделать в виде крылышек у смайлика.
При подрыве на мине, для того что-бы начать игру заново нажмите на смайлик.