В проекте реализованы следующие сущности: лабиринт, интерфейс, алгоритмы построения лабиринта и поиск пути. Реализован абстрактный класс Maze, от него наследуются DfsMaze, KruskalMaze в которых переопределён метод gen. Графический интерфейс реализован с помощью библиотки pygame в классе Interface. Взаимодействие алгоритмов построения с интерфейсом происходит через внутренний класс Cell, в котором храниться информация о цвете и стенах её окаймляющих
Точка входа - main.py
Запуск проекта осуществляется через консоль, командой
python3 main.py [algo] [control] [rows] [cols]algo = [dfs, kruskal] - алгоритм построения лабиринта
control = [auto, handle] - прохождение лабиринта автоматическое или ручное
rows, cols - размеры лабиринта советую 25 на 30, тогда красиво получается :)
После генерации лабиринта, мышкой выбираются две клетки - начальная и конечная,
далее с помощью стрелочек на клавиатуре можно перемещаться по лабиринту
При выборе прохождения в режиме handle, если не получилось найти путь, можно нажать
на кнопку f тогда путь найдётся автоматически не забудьте убедиться что раскладка английская
Пример команды запуска
python3 main.py kruskal handle 25 30