Генератор лабиринтов

Создайте лабиринт для печати в четырёх формах и трёх уровнях сложности. У каждого есть зерно для повтора, решение по желанию и скачивание в SVG.


Скачать SVG
Сетка бывает от 5 до 40 клеток в каждую сторону. Зерно и делает лабиринт повторяемым: сохраните его, и получите тот же самый, измените, и выйдет новый. Оставьте поле пустым для случайного.
Клетки
400
Шагов в решении
97
Тупики
31
Развилки
45

Это лабиринт 20 x 20 для зерна 573522. Введите это зерно снова, чтобы напечатать точно такой же лабиринт, на этом устройстве или на любом другом.

Как строится лабиринт

Генератор начинает со сплошной сетки стен и прорубает в ней ход методом рекурсивного возврата. Он переходит к случайному непосещённому соседу, снося стену между ними, а когда ходов не остаётся, пятится по собственному следу, пока не найдёт клетку, откуда ещё есть куда идти. Каждая клетка посещается ровно один раз, поэтому любой лабиринт полностью связен и проход всегда существует. Извилистые коридоры, которые при этом получаются, и делают лабиринт похожим на лабиринт, а не на решётку из коротких обрубков.

Что на самом деле меняет сложность

Сложность здесь не расплывчатый ползунок, а доля тупиков, которые вскрываются. Сложный оставляет лабиринт таким, каким его прорубили: совершенный лабиринт с единственным маршрутом и наибольшим числом неверных поворотов, куда можно свернуть. Средний вскрывает четверть тупиков, лёгкий семьдесят процентов, и глухие коридоры превращаются в петли, которые проходишь насквозь. На сетке 20 x 20 выходит примерно 42 тупика на сложном, 32 на среднем и 14 на лёгком, а кратчайший маршрут сокращается со 143 шагов примерно до 67. Значения для лабиринта на экране показаны над ним, так что видно, что именно получилось.

Прямоугольники, круги, ромбы и треугольники

Четыре формы это контуры, вырезанные из той же квадратной сетки: любая клетка, центр которой оказался вне контура, просто отбрасывается до начала прорубки. Сетка 20 x 20 даёт 400 клеток как прямоугольник, 316 как круг, 220 как ромб и 200 как треугольник, так что фигурный лабиринт меньше и чуть быстрее прямоугольного того же номинального размера. Поскольку вырезание формы может отрезать клетку-другую в углу, генератор оставляет только наибольшую связную группу и прорубает её, поэтому у фигурного лабиринта никогда случайно не пропадает кусок.

Зерно и повторная печать того же лабиринта

Каждый лабиринт порождается зерном, и зерно показывается вместе с результатом. Введите то же зерно с тем же размером, формой и сложностью, и получите точно тот же лабиринт, сегодня или в следующей четверти, здесь или на другом компьютере. Именно это делает инструмент удобным для класса: раздайте лабиринт, сохраните зерно, а решение напечатайте позже из тех же настроек с отмеченной галочкой. Зерном может быть слово, а не число, так что класс4-понедельник работает не хуже, чем 481029.

Полезно знать

  • Зелёная точка это вход, красная выход; внешняя стена открыта в обоих местах.
  • Чертёж размечен в миллиметрах, поэтому печать в масштабе 100% даёт лист в натуральную величину.
  • Файл SVG векторный, поэтому остаётся чётким при любом размере и его можно отредактировать потом.
  • Показывается кратчайший маршрут, и это важно на лёгком, где петли дают не один путь.
  • Ничего не сохраняется. Лабиринт создаётся на нашем сервере, а результат отбрасывается после отправки.

Часто задаваемые вопросы

Нажмите Печать, и всё, кроме лабиринта, скроется, так что лист выйдет сам по себе, без меню и заголовков вокруг. Чертёж размечен в миллиметрах, поэтому пока принтер стоит на 100%, а не на подгонку по странице, лабиринт выходит того размера, который показан.

Да, для этого и нужно зерно. Запишите зерно, указанное под лабиринтом, и введите его снова с тем же размером, формой и сложностью, чтобы получить точно такой же лабиринт. Зерном могут быть слова, так что что-то вроде класс-3б запоминается легче числа.

Всегда. Алгоритм прорубки посещает каждую клетку ровно один раз, поэтому весь лабиринт представляет собой одну связную область, и путь от входа к выходу гарантирован. Отметьте галочку решения, чтобы увидеть его прочерченным красным.

Числом тупиков. Сложный оставляет лабиринт совершенным, то есть с единственным маршрутом и наибольшим числом тупиков. Средний вскрывает четверть из них, лёгкий семьдесят процентов, превращая их в петли. Лёгкие лабиринты и проходятся быстрее: около 67 шагов против 143 на сетке 20 x 20.

Потому что форма вырезается из той же сетки. Круг, вписанный в сетку 20 x 20, покрывает лишь около 316 из 400 клеток, ромб 220, а треугольник 200. Если нужен фигурный лабиринт с таким же числом клеток, как у прямоугольника, возьмите сетку побольше.

Для малышей 10 x 10 это примерно минута работы, около 39 шагов. 20 x 20 удобная головоломка примерно на 96 шагов, а 40 x 40 длинная, больше 200. Сетка бывает от 5 до 40 клеток по стороне, и стороны не обязаны совпадать.

Да, кнопка Скачать SVG сохраняет ровно тот чертёж, который вы видите. SVG векторный формат, поэтому масштабируется до любого размера без замыливания и открывается в Inkscape, Illustrator или браузере, если захотите перекрасить его или вставить в рабочий лист.

Да. Маршрут находится поиском в ширину, который по построению даёт кратчайший путь. В сложном лабиринте это и так единственная дорога, но на лёгком вскрытые тупики создают петли и несколько способов пройти, поэтому показывать кратчайший и есть осмысленный ответ.

Как сделать лабиринт для печати?

Выберите сетку от 5 до 40 клеток по стороне, форму и сложность, затем распечатайте или скачайте в SVG. Лабиринты прорубаются рекурсивным возвратом, поэтому решение есть всегда, а сложность задаёт, сколько тупиков останется. У каждого лабиринта есть зерно, так что тот же самый можно напечатать снова позже.