Простой генератор подземелий, написанный в JavaScript.
Развернутое приложение можно найти здесь.
Генератор начинается с попытки разместить комнаты случайного размера в случайных местах на сетке. Если существующая комната будет столкнуться с предполагаемой комнатой, размещение не удается, и процесс повторяется с новой случайно сгенерированной комнатой. Количество попыток размещения заранее определено.
Как только все комнаты были размещены, триангуляция Делауна выполняется с использованием центральной плитки каждой комнаты в качестве вершины, создавая график всех комнат. Код, используемый для выполнения триангуляции, можно найти здесь.
Триангуляция Делауны затем используется для создания минимального дерева, соединяющего все комнаты. Чтобы сделать подземелье более интересным, некоторые края, которые были удалены из триангуляции, вновь добавлены в дерево.
Наконец, алгоритм подтверждения A** используется для создания путей между комнатами, которые связаны в модифицированном дереве.
