2

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

那里可能已经有工作示例,但我正在尝试自己解决这个问题(嗯,尽可能多)

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

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

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

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

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

  3. 虽然列表中有墙:

    1. 从列表中随机选择一面墙。如果对面的牢房还没有进入迷宫:

      1. 使墙壁成为通道,并将另一侧的单元格标记为迷宫的一部分。

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

    2. 如果对面的牢房已经在迷宫中,则将墙从列表中删除。

正如我所强调的那样,我的问题是与此相反的 部分。这是否意味着我们墙列表中的任何相邻单元格?还是有别的意思?

我已经用相邻的单元格尝试过它,它最终只是把自己挡住了。

任何想法,将不胜感激。

如果我能让它工作,我会在完成后发布代码。正如我所说,在获得完整解决方案的帮助之前,我想自己走得更远。

4

1 回答 1

0

一堵墙代表两个不同细胞之间的连接。当您将一堵墙添加到您的墙列表中时,这是因为您正在访问一个将成为迷宫一部分的单元,因此当它指的是对面的单元时,它表示该单元“在”该墙“后面”,如果那堵墙不在那里。

于 2012-02-29T22:23:00.697 回答