Генератор лабиринтов
Создайте лабиринт для печати в четырёх формах и трёх уровнях сложности. У каждого есть зерно для повтора, решение по желанию и скачивание в SVG.
Это лабиринт 20 x 20 для зерна 573522. Введите это зерно снова, чтобы напечатать точно такой же лабиринт, на этом устройстве или на любом другом.
Как строится лабиринт
Генератор начинает со сплошной сетки стен и прорубает в ней ход методом рекурсивного возврата. Он переходит к случайному непосещённому соседу, снося стену между ними, а когда ходов не остаётся, пятится по собственному следу, пока не найдёт клетку, откуда ещё есть куда идти. Каждая клетка посещается ровно один раз, поэтому любой лабиринт полностью связен и проход всегда существует. Извилистые коридоры, которые при этом получаются, и делают лабиринт похожим на лабиринт, а не на решётку из коротких обрубков.
Что на самом деле меняет сложность
Сложность здесь не расплывчатый ползунок, а доля тупиков, которые вскрываются. Сложный оставляет лабиринт таким, каким его прорубили: совершенный лабиринт с единственным маршрутом и наибольшим числом неверных поворотов, куда можно свернуть. Средний вскрывает четверть тупиков, лёгкий семьдесят процентов, и глухие коридоры превращаются в петли, которые проходишь насквозь. На сетке 20 x 20 выходит примерно 42 тупика на сложном, 32 на среднем и 14 на лёгком, а кратчайший маршрут сокращается со 143 шагов примерно до 67. Значения для лабиринта на экране показаны над ним, так что видно, что именно получилось.
Прямоугольники, круги, ромбы и треугольники
Четыре формы это контуры, вырезанные из той же квадратной сетки: любая клетка, центр которой оказался вне контура, просто отбрасывается до начала прорубки. Сетка 20 x 20 даёт 400 клеток как прямоугольник, 316 как круг, 220 как ромб и 200 как треугольник, так что фигурный лабиринт меньше и чуть быстрее прямоугольного того же номинального размера. Поскольку вырезание формы может отрезать клетку-другую в углу, генератор оставляет только наибольшую связную группу и прорубает её, поэтому у фигурного лабиринта никогда случайно не пропадает кусок.
Зерно и повторная печать того же лабиринта
Каждый лабиринт порождается зерном, и зерно показывается вместе с результатом. Введите то же зерно с тем же размером, формой и сложностью, и получите точно тот же лабиринт, сегодня или в следующей четверти, здесь или на другом компьютере. Именно это делает инструмент удобным для класса: раздайте лабиринт, сохраните зерно, а решение напечатайте позже из тех же настроек с отмеченной галочкой. Зерном может быть слово, а не число, так что класс4-понедельник работает не хуже, чем 481029.
Полезно знать
- Зелёная точка это вход, красная выход; внешняя стена открыта в обоих местах.
- Чертёж размечен в миллиметрах, поэтому печать в масштабе 100% даёт лист в натуральную величину.
- Файл SVG векторный, поэтому остаётся чётким при любом размере и его можно отредактировать потом.
- Показывается кратчайший маршрут, и это важно на лёгком, где петли дают не один путь.
- Ничего не сохраняется. Лабиринт создаётся на нашем сервере, а результат отбрасывается после отправки.