我在Stack Overflow上找到了关于生成迷宫的好算法的this问题。我需要一个算法,它也会生成迷宫,但我可以决定他们是否有解决方案。哪种算法适用于此?
答案 0 :(得分:2)
使用Recursive Backtracker通过一个解决方案生成迷宫。或者可用的algorithms中的任何一个。
这些算法将生成某种迷宫数据格式,通常为每个单元格指示其两个边缘的状态(因此,每个单元格两位),以及唯一的解决路径。
然后,如果你想要它而不是有一个解决方案,选择路径中间的一个单元格并添加一个墙,从而杀死唯一的解决方案。如何做到这一点取决于算法的迷宫数据格式。它可以像
一样简单if (noSolution) {
var kill = Math.floor(maze.path.length/2);
maze.cell[maze.path[kill].y]
[maze.path[kill].x].edges = { };
}