我将如何用C#(特别是Unity)编写一个具有多个解决方案的Braid迷宫?
根据我在简短研究中的理解,辫子迷宫是一种允许循环的递归迷宫,意味着没有死胡同。
我找到的最接近的答案是在这个线程中处理如何创建more than one successful path,但我不能想出将两者结合起来,因为线程中使用的例子是“完美”迷宫。
通过这些步骤,你可以得到多个成功的路径从开始到结束:
1.将迷宫细分为三组:开始(最初仅包含开始单元格)、目标(最初仅包含目标单元格)和未发现(所有其余单元格)。
1.随机移除起始集合或目标集合中的单元格与未发现集合中的单元格之间的墙,并将新发现的单元格移动到相应的集合中。
1.重复此步骤,直到每个单元格都位于开始或目标集中。
1.移除两个区域之间的墙,数量根据您想要的从起点到目的的路径而定。
我需要的是一个步骤5。回去,删除所有的死胡同变成一个辫子迷宫,我会设置!(假设迷宫大小是n * n).
1条答案
按热度按时间2w3kk1z51#
最简单的方法如何:在迷宫建造的过程中,我一直在追踪死胡同,然后在迷宫完成后,为每个死胡同拆除三堵墙中的一堵,这样它就可以连接到迷宫的其他部分。有可能存在一些死胡同的配置,如果不以某种方式破坏迷宫,就不可能做到这一点,但我还没有能够想出这样的例子。