Algorithm 在游戏Netwalk中生成迷宫的算法是什么?

Algorithm 在游戏Netwalk中生成迷宫的算法是什么?,algorithm,maze,Algorithm,Maze,游戏中生成迷宫的算法是什么 查看谷歌代码,您可以自己阅读并找到!迷宫由game.c第78ff行中的函数生成 Netwalk通过运行的随机版本来生成迷宫,以查找。Prim的算法从源节点(或多个节点:在本例中为“服务器”,即深蓝色双高框)开始,一次迭代地将一棵树分支一次。在算法运行的任何给定点,数据结构如下所示: 绿色的细胞是生长中的树枝顶端的细胞:它们至少还有一个空的邻居可以生长。在每一步中,该算法选择其中一个绿色单元,然后选择其中一个空邻居(1),并向该邻居添加一个分支。这条新的树枝阻碍了

游戏中生成迷宫的算法是什么

查看谷歌代码,您可以自己阅读并找到!迷宫由
game.c
第78ff行中的函数生成


Netwalk通过运行的随机版本来生成迷宫,以查找。Prim的算法从源节点(或多个节点:在本例中为“服务器”,即深蓝色双高框)开始,一次迭代地将一棵树分支一次。在算法运行的任何给定点,数据结构如下所示:

绿色的细胞是生长中的树枝顶端的细胞:它们至少还有一个空的邻居可以生长。在每一步中,该算法选择其中一个绿色单元,然后选择其中一个空邻居(1),并向该邻居添加一个分支。这条新的树枝阻碍了邻近的树枝向它的方向生长。当分支不再有空邻居(2)时,它将从绿色单元格列表中删除

最终,绿色列表是空的:网络的所有分支都没有空的邻居。这意味着电路板已满,每个单元都通过一条路径连接到服务器


[我已经在几个地方对细节进行了理想化:(1)事实上,Netwalk算法有点幼稚,只是选择了一个随机方向,如果该方向上的邻居不是空的,它什么也不做,并继续下一次迭代。(2)没有空邻居的分支不会及时被检测到:只有当它们碰巧被选中时,才会从绿色列表中删除。演示修复了这些小问题。]

根据已发布答案的质量,我重新打开了它。然而,社区可以自由地不同意我的决定。我的理由是,答案证明这个问题确实是客观的,以一种建设性的方式来回答的-尽管我同意措辞相当宽泛。非常感谢你指出游戏和演示背后的想法。很酷。这是一个非常广泛的问题的非常客观的答案。谢谢你的贡献。