---
# System prepended metadata

title: Практика 8. Сапер (PyQt5)
tags: [Python Advanced]

---

---
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;">
