1

在网格中生成迷宫的最佳算法是什么?

我听说过 Kruskal 的算法和递归回溯器等,但它们都依赖于墙壁。在整个细胞是墙壁的情况下,创造惊奇的最佳算法是什么?

4

1 回答 1

4

修改递归回溯或 Prim 的算法应该足够简单(代码来源于Wikipedia

随机 Prim 算法

  • 从填充单元格的网格开始。
  • 选择一个单元格,将其标记为迷宫的一部分。将单元格周围的填充单元格添加到单元格列表中。
  • 虽然列表中有单元格:
    • 从列表中选择一个随机单元格。如果单元格没有 2 个已探索的邻居:
      • 清除单元格。
      • 将相邻的填充单元格添加到单元格列表中。
    • 从列表中删除单元格。
于 2014-05-24T09:59:20.780 回答