【问题标题】:Maze generating algorithm in grid网格中的迷宫生成算法
【发布时间】:2014-05-24 09:02:15
【问题描述】:

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

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

【问题讨论】:

    标签: algorithm kruskals-algorithm recursive-backtracking


    【解决方案1】:

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

    随机 Prim 算法

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

    【讨论】:

    • 你能举个python的例子吗?我的似乎只是快速增加单元格列表中的单元格数量。
    • 不幸的是,我对 Python 不是特别熟悉。单元格的数量应该迅速增加(在开始时),但是应该在每次 while 循环的迭代中删除一个单元格,并且永远不要再添加到它 - 确保这两个都是真的。
    • 啊,我想我的问题是我的 if 条件允许将以前使用的墙壁添加到列表中。
    • “探索”指的是什么?
    • 我认为在这种情况下应该是“清除”的同义词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多