Проект представляет собой консольную программу для генерации лабиринтов и поиска пути в них. Программа способна генерировать лабиринты различной сложности и размеров, а также предоставляет несколько методов поиска пути от заданной точки А (начала) к точке Б (конца). Интерфейс приложения простой и понятный, с возможностью отрисовки в консоли лабиринта и найденного пути.
В рамках проекта были реализованы следующие функциональные возможности:
- Генерация лабиринтов с использованием различных алгоритмов.
- Поиск пути в лабиринте с использованием нескольких алгоритмов, таких как A*, Дейкстра, BFS и DFS.
- Визуализация лабиринта и найденного пути в консоли.
На изображении ниже показано, как программа работает в консоли. Пользователь выбирает алгоритм поиска пути, после чего программа генерирует лабиринт и находит путь от начальной точки А до конечной точки Б.
- Реализовано как минимум два алгоритма для случайной генерации лабиринтов.
- Реализовано как минимум два алгоритма для поиска пути из заданной начальной точки А в конечную точку Б.
- Печать лабиринта в консоль с точками А и Б.
- Отображение пути через лабиринт при его наличии.
- Код написан ясно и структурировано.
- Программа имеет текстовый интерфейс.
- Наличие документации по использованию, а также по алгоритмам генерации и решения лабиринта.
В результате выполнения проекта удалось создать полноценную консольную программу для генерации и решения лабиринтов. Программа корректно работает с различными алгоритмами генерации и поиска пути, обеспечивая наглядное представление результатов в консоли. Это позволяет эффективно использовать программу для учебных и исследовательских целей.
- О генерации лабиринтов: https://habr.com/ru/articles/445378/
- Поиск в глубину: https://ru.algorithmica.org/cs/graph-traversals
- Поиск в ширину: https://ru.algorithmica.org/cs/shortest-paths
- Unicode-символы для лабиринта: https://www.vidarholen.net/cgi-bin/labyrinth
Это типовой Java-проект, который собирается с помощью инструмента автоматической сборки проектов Apache Maven.
Проект состоит из следующих директорий и файлов:
- pom.xml – дескриптор сборки, используемый maven, или Project Object Model. В нем описаны зависимости проекта и шаги по его сборке
- src/ – директория, которая содержит исходный код приложения и его тесты:
- 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- Документация по maven: https://maven.apache.org/guides/index.html
- Поиск зависимостей и их версий: https://central.sonatype.com/search
- Документация по процессу автоматизированной сборки в среде github: https://docs.github.com/en/actions
- Документация по git: https://git-scm.com/doc
- Javadoc для Java 22: https://docs.oracle.com/en/java/javase/22/docs/api/index.html


