проект в C++ Skill Tree

Создание игры Sokoban с отменой ходов

Создайте терминальную игру Sokoban на C++ с допустимыми шагами, перемещением одного ящика, реальной проверкой целей и полной отменой состояния.

ПроектC++

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Создание игры Sokoban с отменой ходов — практический проект на C++ для тех, кто уже знает основы языка. Вы создадите терминальную игру, в которой игрок толкает ящики на целевые клетки, отклоняет невозможные ходы и может полностью отменить предыдущее действие.

Курс состоит из двух пошаговых лабораторных работ и одного самостоятельного задания. Сначала вы реализуете ходьбу, перемещение одного ящика и проверку фактического выполнения цели. Затем сохраните полные значения состояния и восстановите их при отмене. В завершение примените те же правила к другому складу с двумя ящиками. Каждая работа предоставляет собственные файлы; файлы и запущенная игра из предыдущей среды не переносятся.

Чему вы научитесь

После завершения курса вы сможете:

  • отделять неподвижные стены и цели от изменяющихся позиций игрока и ящиков;
  • проверять условия ходьбы и толкания до изменения состояния, чтобы отклонённые действия ничего не меняли;
  • определять завершение по нахождению каждого ящика на цели и пересчитывать его после хода или отмены;
  • копировать полные состояния в историю vector только для допустимых ходов, затем безопасно восстанавливать игрока и все ящики;
  • компилировать и запускать переиспользуемый движок на C++, который поддерживает разные допустимые маршруты и сохраняет исходные уровни.

Для кого этот курс

Курс предназначен для изучающих C++, которые хотят использовать объекты, копирование значений и стандартные контейнеры в интерактивной программе с чёткими правилами.

Предварительные требования: Базовая навигация в терминале и знакомство с классами, функциями, строками и vector в C++. Пошаговые работы объясняют модель неподвижного поля, условия ходов, полные снимки состояния и операции с историей.

Учебная среда: LabEx предоставляет подготовленную среду Linux в браузере с компилятором C++17, каркасом кода, небольшими уровнями, работающим примером и Terminal. Команды управления игрой, сообщения и вывод команд остаются на английском языке.

Часто задаваемые вопросы

Нужно ли писать всё игровое приложение?

Вы реализуете функции перемещения, проверки завершения и отмены в engine.cpp. Загрузка уровней, текстовое отображение и чтение команд уже подготовлены. Вы скомпилируете свой движок в рабочую игру; локальная установка и графический движок не нужны.

Нужно ли находить кратчайшее решение?

Нет. Принимаются разные допустимые маршруты. Проект посвящён правильным изменениям состояния и полной отмене, а не автоматическому решению или оптимальному числу ходов.

Можно ли отменить победный толчок?

Да. После завершения уровня можно продолжать играть, а отмена восстанавливает игрока и все ящики, включая состояние перед победным толчком. История относится к текущей игре в памяти; повторный запуск начинает новую игру, а не загружает сохранённый сеанс.

Преподаватель

labby
Labby
Labby is the LabEx teacher.

Рекомендовано для вас

no data