Генератор лабиринтов
Реализуйте сайт, генерирующий лабиринты для их прохождения.
Основные возможности проекта
- Кнопка для генерации лабиринта.
- Выбор размера лабиринта (количество ячеек).
- Выбор сложности лабиринта (извилистость).
- Отрисовка лабиринта на canvas.
- Визуальное выделение входа и выхода.
Главная страница
На странице должны быть размещены:
- Настройки: размер лабиринта (например, 5x5, 10x10, 20x20) и сложность (низкая, средняя, высокая).
- Кнопка "Сгенерировать лабиринт".
- Canvas для отрисовки лабиринта.
Генерация лабиринта
Для генерации лабиринта используется алгоритм поиска в глубину (DFS) или алгоритм Краскала:
- Создать сетку ячеек с закрытыми стенами между ними.
- Выбрать случайную стартовую ячейку.
- Рекурсивно проходить по ячейкам, убирая стены между текущей и соседней ячейкой.
- Сложность регулирует количество тупиков и ветвлений.
Размер и сложность
Настройки перед генерацией:
- Размер - количество ячеек по горизонтали и вертикали (например, 10x10, 15x15, 20x20).
- Сложность - влияет на количество проходов и тупиков (низкая - больше прямых коридоров, высокая - больше извилистых путей).
Отрисовка на canvas
Лабиринт должен отображаться на canvas:
- Стены отображаются линиями.
- Проходы - пустые ячейки.
- Вход - зеленый цвет (верхняя левая ячейка).
- Выход - красный цвет (нижняя правая ячейка).
Дополнительные возможности
- Анимация прохождения лабиринта (автоматический поиск пути).
- Кнопка "Показать решение" - визуальное отображение правильного пути от входа до выхода.