Что хороший алгоритм должен генерировать лабиринт?

Вы работаете с размером панели w1000, h600 (+ поле). Измените размер вашего SVG-элемента (в CSS) соответственно, и диаграмма будет отображаться, как и ожидалось:

svg {
  width: 1030px;
  height: 630px;
}

PS: В качестве альтернативы установите размер SVG в вашем коде JS, таким образом, вы должны определить эти числа только в одном месте .

51
задан Greg 1 September 2008 в 10:57
поделиться

1 ответ

Я предпочитаю версию Рекурсивного алгоритма Подразделения. Это описано подробно здесь.

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

вариант решает эту проблему путем рисования рандомизированных, "изогнутых" стен, а не прямых, создания узких мест менее очевидными.

0
ответ дан 7 November 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: