假设我们有一个迷宫。您从其中的某个地方开始:
* - * - *
| |
*-here
仅生成迷宫的一小部分(例如,您周围的10乘10平方)。当您四处走动时,会产生更多的迷宫。是否有一种算法可确保您始终有去处?
例如:
*-here * - *
|
*
将无法使用,因为您没有路径。
我有一个“解决方案”,那就是生成一个有限的迷宫,然后将其强制连接到另一个有限的迷宫,形成一个网格(确保有限的迷宫是可行的。)
编辑1:迷宫不能具有确定的大小;地图的一部分将动态生成。
编辑2:无论加载顺序如何,它都必须生成相同的迷宫(先向左移动,然后与向左然后向上移动应生成相同的迷宫)
[有许多不同的复杂性。 Wikipedia页面是一个不错的起点:https://en.wikipedia.org/wiki/Maze_generation_algorithm。
[通常,与在探索过程中逐步生成迷宫相比,预先生成整个迷宫并在探索过程中一点一点地揭示它会更容易,但是请查看链接并确定您的想法。
“很抱歉,我没有有关此操作的参考。http://weblog.jamisbuck.org/2011/1/3/maze-generation-kruskal-s-algorithm
https://mtimmerm.github.io/webStuff/maze.html
考虑使用Kruskal算法生成迷宫的一种方法是:
当您以这种方式生成迷宫时,可以确保从迷宫中的每个位置到其他位置都有一条路径。但是,与“完美”的迷宫不同,两个地方之间可能有不止一条路径,而且距离不尽相同。但是,只要您的瓷砖足够大,就不会有任何可见的瓷砖瑕疵,并且仍然很难找到从一个地方到另一个地方的路。