Skip to content

IMNJL/MazeGame

Repository files navigation

Проект 2: Лабиринты

Описание

Проект представляет собой консольную программу для генерации лабиринтов и поиска пути в них. Программа способна генерировать лабиринты различной сложности и размеров, а также предоставляет несколько методов поиска пути от заданной точки А (начала) к точке Б (конца). Интерфейс приложения простой и понятный, с возможностью отрисовки в консоли лабиринта и найденного пути.

Реализация

В рамках проекта были реализованы следующие функциональные возможности:

  • Генерация лабиринтов с использованием различных алгоритмов.
  • Поиск пути в лабиринте с использованием нескольких алгоритмов, таких как A*, Дейкстра, BFS и DFS.
  • Визуализация лабиринта и найденного пути в консоли.

Пример работы программы

На изображении ниже показано, как программа работает в консоли. Пользователь выбирает алгоритм поиска пути, после чего программа генерирует лабиринт и находит путь от начальной точки А до конечной точки Б.

Пример работы программы Пример работы программы Пример работы программы

Функциональные требования

  • Реализовано как минимум два алгоритма для случайной генерации лабиринтов.
  • Реализовано как минимум два алгоритма для поиска пути из заданной начальной точки А в конечную точку Б.
  • Печать лабиринта в консоль с точками А и Б.
  • Отображение пути через лабиринт при его наличии.

Нефункциональные требования

  • Код написан ясно и структурировано.
  • Программа имеет текстовый интерфейс.
  • Наличие документации по использованию, а также по алгоритмам генерации и решения лабиринта.

Вывод

В результате выполнения проекта удалось создать полноценную консольную программу для генерации и решения лабиринтов. Программа корректно работает с различными алгоритмами генерации и поиска пути, обеспечивая наглядное представление результатов в консоли. Это позволяет эффективно использовать программу для учебных и исследовательских целей.

Дополнительные материалы


Структура проекта

Это типовой Java-проект, который собирается с помощью инструмента автоматической сборки проектов Apache Maven.

Проект состоит из следующих директорий и файлов:

  • pom.xml – дескриптор сборки, используемый maven, или Project Object Model. В нем описаны зависимости проекта и шаги по его сборке
  • src/ – директория, которая содержит исходный код приложения и его тесты:
    • src/main/ – здесь находится код вашего приложения
    • src/test/ – здесь находятся тесты вашего приложения
  • mvnw и mvnw.cmd – скрипты maven wrapper для Unix и Windows, которые позволяют запускать команды maven без локальной установки
  • checkstyle.xml, checkstyle-suppression.xml, pmd.xml и spotbugs-excludes.xml – в проекте используются линтеры для контроля качества кода. Указанные файлы содержат правила для используемых линтеров
  • .mvn/ – служебная директория maven, содержащая конфигурационные параметры сборщика
  • lombok.config – конфигурационный файл Lombok, библиотеки помогающей избежать рутинного написания шаблонного кода
  • .editorconfig – файл с описанием настроек форматирования кода
  • .github/workflows/build.yml – файл с описанием шагов сборки проекта в среде Github
  • .gitattributes, .gitignore – служебные файлы для git, с описанием того, как обрабатывать различные файлы, и какие из них игнорировать

Начало работы

Подробнее о том, как приступить к разработке, описано в разделах курса 1.8 Настройка IDE, 1.9 Работа с Git и 1.10 Настройка SSH.

Для того чтобы собрать проект, и проверить, что все работает корректно, можно запустить из модального окна IDEA Run Anything команду:

mvn clean verify

Альтернативно можно в терминале из корня проекта выполнить следующие команды.

Для Unix (Linux, macOS, Cygwin, WSL):

./mvnw clean verify

Для Windows:

mvnw.cmd clean verify

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

Если вы в процессе сборки получили ошибку:

Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion failed with message:
JDK version must be at least 22

Значит, версия вашего JDK ниже 22.

Если же получили ошибку:

Rule 1: org.apache.maven.enforcer.rules.version.RequireMavenVersion failed with message:
Maven version should, at least, be 3.8.8

Значит, у вас используется версия maven ниже 3.8.8. Такого не должно произойти, если вы запускаете сборку из IDEA или через mvnw-скрипты.

Далее будут перечислены другие полезные команды maven.

Запуск только компиляции основных классов:

mvn compile

Запуск тестов:

mvn test

Запуск линтеров:

mvn checkstyle:check modernizer:modernizer spotbugs:check pmd:check pmd:cpd-check

Вывод дерева зависимостей проекта (полезно при отладке транзитивных зависимостей):

mvn dependency:tree

Вывод вспомогательной информации о любом плагине (вместо compiler можно подставить интересующий вас плагин):

mvn help:describe -Dplugin=compiler

Дополнительные материалы

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages