Задание № 3372

Студент

Комарова Анастасия

Задача

Игра

Состояние

Завершено

Баллов

0

Назначено

14.06.2021, 03:15

Завершено

10.10.2021, 09:06

Реализовать любую не слишком сложную игру в ОО-стиле. Например:

  • Pacman.
  • Арканоид.
  • Тетрис.
  • Сапёр.
  • Морской бой.

Для создания интерфейса можно использовать библиотеку консольного вывода.

Замечания:

  1. Игровые объекты должны быть реализованы через классы.
  2. Движок игры важнее, чем интерфейс.
  3. Для реализации желательно, но необязательно использовать подход «Message Driven System».

Примечания

Игра Сапер.

  • Игровое поле представляет собой квадрат 10х10 блоков (двумерный массив). Каждый блок - это объект, содержащий в себе информацию о том, есть ли в нем бомба, был ли он открыт и сколько бомб вокруг. Это логическое представление поля. Графическое - тоже двумерный массив, но содержащий в себе ссылки на загруженные картинки. Логическую и графическую части я выведу в отдельные классы.
  • После первого хода расставляются бомбы с помощью рандомайзера. По умолчанию вероятность выпадения бомбы 1/4.
  • Взаимодействие с пользователем: открыть ячейку, поставить на ячейку метку, убрать метку.
  • Flood-fill алгоритм, с помощью которого открываются клетки рядом с пустой до тех пор, пока рядом не окажется клетка с бомбой.
  • Должен присутствовать рестарт, который сбрасывает все флаги.

(Не обязательно, но может быть реализую): - Стартовое меню - Звуковое сопровождение - Уровень сложности (изменение размера поля или увеличение вероятности выпадения бомбы)

Для графики использую библиотеку SDL 2.

Действия