网格中的迷宫生成算法

时间:2014-05-24 09:02:16

标签: algorithm kruskals-algorithm recursive-backtracking

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

我听说过Kruskal的算法和其他的递归回溯,但这两种算法都依赖于墙壁。如果整个单元格都是墙壁,最好的算法会产生惊人的效果吗?

1 个答案:

答案 0 :(得分:3)

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

随机Prim算法

  • 从填充单元格开始。
  • 选择一个单元格,将其标记为迷宫的一部分。将单元格的周围填充单元格添加到单元格列表中。
  • 虽然列表中有单元格:
    • 从列表中选择一个随机单元格。如果细胞没有2个被探索的邻居:
      • 清除牢房。
      • 将相邻的已填充单元格添加到单元格列表中。
    • 从列表中删除单元格。