Tag: prims algorithm

迷宫生成prim算法并非遍历所有细胞

我正在尝试实现Prim迷宫生成算法: 从充满墙壁的网格开始。 选择一个单元格,将其标记为迷宫的一部分。 将单元格的墙添加到墙列表中。 虽然列表中有墙: 从列表中选择一个随机墙。 如果细胞在另一侧 尚未进入迷宫: 使墙成为通道,并将对面的细胞标记为迷宫的一部分。 将单元格的相邻墙添加到墙列表中。 如果对面的单元格已经在迷宫中,请从列表中移除墙壁。 删除一些实现细节,我的实现如下所示: Cell[][] maze 是带有细胞的矩阵。 每个单元格都有左/右/上/按钮墙。 边界墙标记为boolean frontier ,并不是实施的一部分,因为我想保持我的迷宫框架。 public Cell[][] prim(){ List walls = new ArrayList(); //Pick a cell, mark it as part of the maze int initialCellI = rnd(sizeX)-1; int initialCellJ = rnd(sizeY)-1; Cell randomCell = maze[initialCellI][initialCellJ]; randomCell.setPartOftheMaze(true); //Add the walls of the […]