我正在尝试在javascript中创建一个随机迷宫生成器。
可能已经有一些工作示例,但我正试图自己解决这个问题(嗯,尽可能多)
我遇到的问题是我的脚本只运行几个块然后停止。
我认为问题在于我对我所遵循的解释的理解(来自这个维基百科页面http://en.wikipedia.org/wiki/Maze_generation_algorithm)
该算法是Prim算法的随机版本。
从一个满墙的网格开始。
选择一个单元格,将其标记为迷宫的一部分。将单元格的墙壁添加到墙列表中。
虽然列表中有墙:
从列表中选择一个随机墙。如果对面上的单元格尚未进入迷宫:
将墙壁作为通道,并将对侧上的单元格标记为迷宫的一部分。
将单元格的相邻墙添加到墙列表中。
如果对面上的单元格已经在迷宫中,请从列表中删除该墙。
我高兴的是,我的问题在于对立面部分。这是否意味着我们的墙列表中的任何相邻单元格?或者它意味着什么呢?
我已经尝试过与相邻的单元格进行对比,最终只是阻塞了自己。
任何想法都会受到赞赏。
如果我能让它工作,我会在完成后发布代码。正如我所说,在获得完整解决方案的帮助之前,我希望自己能够做到这一点。
答案 0 :(得分:0)
墙表示两个不同单元格之间的连接。当您在墙壁列表中添加墙壁时,这是因为您正在访问将成为迷宫一部分的单元格,因此当它指向相反的单元格时,它意味着单元格位于该墙壁的“后面”,如果通道将导致那堵墙不存在。