Javascript - 随机Prim算法问题随机化Prim算法

时间:2012-02-29 22:06:37

标签: javascript maze prims-algorithm

我正在尝试在javascript中创建一个随机迷宫生成器。

可能已经有一些工作示例,但我正试图自己解决这个问题(嗯,尽可能多)

我遇到的问题是我的脚本只运行几个块然后停止。

我认为问题在于我对我所遵循的解释的理解(来自这个维基百科页面http://en.wikipedia.org/wiki/Maze_generation_algorithm

该算法是Prim算法的随机版本。

  1. 从一个满墙的网格开始。

  2. 选择一个单元格,将其标记为迷宫的一部分。将单元格的墙壁添加到墙列表中。

  3. 虽然列表中有墙:

    1. 从列表中选择一个随机墙。如果对面上的单元格尚未进入迷宫:

      1. 将墙壁作为通道,并将对侧上的单元格标记为迷宫的一部分。

      2. 将单元格的相邻墙添加到墙列表中。

    2. 如果对面上的单元格已经在迷宫中,请从列表中删除该墙。

  4. 我高兴的是,我的问题在于对立面部分。这是否意味着我们的墙列表中的任何相邻单元格?或者它意味着什么呢?

    我已经尝试过与相邻的单元格进行对比,最终只是阻塞了自己。

    任何想法都会受到赞赏。

    如果我能让它工作,我会在完成后发布代码。正如我所说,在获得完整解决方案的帮助之前,我希望自己能够做到这一点。

1 个答案:

答案 0 :(得分:0)

墙表示两个不同单元格之间的连接。当您在墙壁列表中添加墙壁时,这是因为您正在访问将成为迷宫一部分的单元格,因此当它指向相反的单元格时,它意味着单元格位于该墙壁的“后面”,如果通道将导致那堵墙不存在。