Алгоритм Краскала используется для генерации идеальных лабиринтов путём создания структуры, в которой каждая ячейка соединена с другими без циклов и недостижимых областей. habr.com t.me
В результате получается лабиринт, в котором из любой точки можно попасть в любую другую по единственному пути. habr.com
Процесс работы алгоритма Краскала включает следующие шаги: habr.com
- Все возможные соединения между ячейками лабиринта заносятся в список и получают случайные веса. habr.com
- Все рёбра упорядочиваются по весу в порядке неубывания. habr.com
- Построение остовного дерева: habr.com
- Выбирается ребро с наименьшим весом. habr.com
- Проверяется, соединяет ли оно две разные компоненты связности (с помощью Union-Find). habr.com
- Если ребро не создаёт цикл, оно добавляется в остовное дерево. habr.com evileg.com
- Повторение. habr.com Шаги продолжаются, пока не будет добавлено (V — 1) рёбер, где V — количество вершин графа. habr.com
- Преобразование базовой сетки в итоговый лабиринт. habr.com
При генерации лабиринта алгоритм присваивает случайные веса рёбрам, что делает сгенерированные лабиринты визуально красивыми и равномерными. habr.com