Программа создана для:
- создания лабиринтов с одним и двумя путями, используя алгоритмы:
- Prim's
- Recursive backtracked
- Wave propagation
- нахождения наилучшего пути в лабиринте от и до указанных точек, используя алгоритмы:
- Shortest pathfinder
- Dead end filler
- A* (используятся для лабиринтов с несколькими путями)
В лабиринте есть клетки замедляющие и ускоряющие прохождение.
В файле Main.java можно настроить язык, на котором будут выводиться сообщения.
После его настройки нужно запустить main метод.
При запуске программы в консоль выводятся вопросы, на которые нужно отвечать для настроек лабиринта и управлением процесса генерации и поиска.
Ввод состоит из:
- ширина лабиринта
- высота лабиринта
- координаты по X и Y начальной точки в одной строке через пробел
- координаты по X и Y конечной точки в одной строке через пробел
- номер или название алгоритма для создания лабиринта (нужно выбрать из списка, который будет выведен в консоли)
- номер или название алгоритма для нахождения пути (нужно выбрать из списка, который будет выведен в консоли)
- 1 чтобы начать создание лабиринта
- 1 чтобы начать нахождение пути лабиринта
* Все параметры должны быть неотрицательными и целочисленными
* Отсчет координат начинается от 0 с верхнего левого угла. X по горизонтали, Y по вертикали
Вывод программы может быть на русском и английском языке.
Лабиринт имеет клетки путей и стен и проходов в стенах
- Стена 🟩
- Проход в стене ⬜️
- Различные типы поверхности путя 🏜️ 🟫 🟧 🛣️
Проходы не считаются путем, а размеры лабиринта не учитывают стены и проходы в стенах
* Выведенный размер = введеный размер * 2 + 1