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

Javascript - Randomized Prim's algorithm problemRandomized Prim's algorithm

本文关键字:算法 随机化 Prim 问题 Javascript-      更新时间:2023-09-26

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

可能已经有了可行的例子,但我正在尝试自己解决这个问题(好吧,尽可能多)

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

我认为问题在于我对以下解释的理解(来自维基百科页面http://en.wikipedia.org/wiki/Maze_generation_algorithm)

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

  1. 从满墙的网格开始。

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

  3. 虽然列表中有墙:

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

      1. 使墙壁成为通道,并将对面的细胞标记为迷宫的一部分。

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

    2. 如果对面的细胞已经在迷宫中,请从列表中删除该墙。

正如我所指出的,我的问题是这方面的反面部分。这是否意味着在我们的墙列表中有任何相邻的单元格?或者这意味着别的什么?

我试过用相邻的细胞,结果它只是把自己堵进去了。

任何想法都将不胜感激。

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

墙表示两个不同单元之间的连接。当你把一堵墙添加到你的墙列表中时,这是因为你正在访问一个将成为你迷宫一部分的细胞,所以当它指的是对面的细胞时,它的意思是"墙后面"的细胞,如果没有墙,就会有一条通道通向那里。