玩家在我的世界游戏地图中会遇见许多有意思的东西,比如说迷宫,而玩家如果遇到了迷宫通常会使用右手法则,下面小编就为大家带来我的世界随机完美迷宫生成算法,让大家了解一下这些算法是什么!希望此篇文章能帮到大家!
最重要的是他们两个都非常相似,只是在遇到死路的时候解决方法有点不同而已。
一个迷宫里面会有很多个"房间","房间"就是四面可以有墙壁的
比如这个,它是迷宫一开始的样子,每个格子都是一个"房间",只要把那些房间连接起来,就是一个迷宫
完美迷宫就是一个迷宫,它从一个地方通往另外一个地方的道路只有一条,例子:
左边那个就是一个"深度优先"的迷宫,生成的算法是recursive backtracker
你可以看到左边的迷宫,你向着任何一边走都是比较长的路(起码比右边的长)
我们现在来讲解一下recursive backtracker的原理
先选择一个"房间"来开始(可以随机,也可以固定一个房间作开始)
然后随机选择隔壁的一个从未选择过的房间,并且把它们之间的墙壁打破不断重复以上的步骤,直到遇上死路
死路就是说,你选择到的房间旁边,不是已经选择了的房间,就是没有房间(简单来说就是旁边没有还没选择的房间)
遇到死路的时候,你就会往回跑,直到找到一个房间旁边有可以选择的房间
以下是一个例子
比如你选择的是红色那点
之后你好像红色的路径一样走,然后遇上死路(红色那点上方一格)
死路的原因就是因为旁边的格子都是已经走过的
然后你就好像那个红色的路径一样往回跑(蓝色的路径就是你之前走过的)
到了蓝色那点右边那一格的时候,你就会发现下方有一个可以选择的格子(以绿色标记的那个)
之后你就向着那个格子跑,然后继续随便乱走,遇到死路的时候就好像之前一样去解决:D (我才不会告诉你是因为我太懒才不继续举例)