---
tags: Python Advanced
---
# Практика 8. Сапер (PyQt5)
## Документация PyQt5
Домашняя страница PyQt5 находится по адресу https://riverbankcomputing.com/software/pyqt/intro, а домашняя страница документации — по адресу https://www.riverbankcomputing.com/static/Docs/PyQt5/. Пока вы можете ограничиться простым просмотром документации. Она вам пригодится, если вы захотите внести изменения в [игру Сапер](https://github.com/roman-yatsenko/pyqt-saper-2022) или займетесь созданием собственной игры.
## Базовый уровень
### Задача 1. *Радуга*
Добавить разные цвета для разных чисел количества мин вокруг клетки игрового поля.
### Задача 2. *Уровни*
Добавить в интерфейс выбор уровня (3 уровня). При выборе уровня перезапускать игру. Лучше использовать RadioButton.
### Задача 3. *Рекорды*
Сохранять в файле рекорд по скорости для каждого уровня. По ходу игры отображать рекорд для текущего уровня. Если улучшил рекорд, то обновить его в интерфейсе игры и в файле.
## Средний уровень
### Задача 4. *Первый ход*
Позвольте игроку выбрать свой первый ход. Попробуйте включить расчет позиций мин после первого нажатия игрока так, чтобы он не попадал своим ходом на мину.
### Задача 5. *Игра без флагов*
Для прохождения игры вам нужно только открыть все клетки, поэтому профессиональные игроки не ставят флаги чтобы сократить количество лишних кликов. Добавьте такой режим игры без флагов.
### Задача 6. *Двигающиеся мины*
Дайте возможность спрятанным минам двигаться по полю между ходами. Храните список доступных нераскрытых позиций и позвольте минам двигаться по ним. Вам нужно будет пересчитывать мины вокруг клеток после каждого нажатия.
## Повышенный уровень
### Задача 7. *Сканер*
Добавьте усилитель сканер для разведки определенной части игрового поля в автоматическом режиме.
### Задача 8. *3BV*
3BV (Bechtel's Board Benchmark Value) — это минимальное количество левых кликов, необходимых для прохождения игры без флагов. 3BV используется как мера относительной сложности карты. Научитесь рассчитывать показатель 3BV для текущего уровня.
Для уровней новичок, любитель и профессионал существуют ограничения по 3BV, чтобы слишком удачные карты не попадали в рейтинг. Это 5/30/100 соответственно. Все игры, в которых 3BV ниже, не попадают в рейтинг.
---
(c) Яценко Р.Н., 2021-2022
[Учебный центр компьютерных технологий "Кит"](http://kit.kh.ua/)
<img src="https://i.imgur.com/Kh901c1.png" style="width: 150px; position: fixed; top: 100px; right: 10px; border: 0; box-shadow: none;">