如何制作一个有多条路径而没有死角的“迷宫”?

时间:2017-04-27 02:18:47

标签: c# recursion unity3d unityscript maze

我如何使用多种解决方案在C#(特别是Unity)中编写Braid迷宫?

我在简短研究中所理解的一种辫子迷宫是一种递归迷宫,它允许循环,意味着没有死角。

我找到的最接近的答案是在这个线程中处理如何创建more than one successful path,但我无法想出将两者结合起来,因为线程中使用的示例是“完美”迷宫。

通过这些步骤,您可以从头到尾获得多条成功路径:

  
      
  1. 将迷宫细分为三组:开始(最初仅保持起始单元格),目标(最初仅保持目标单元格),以及未发现的(所有其余部分)。
  2.   
  3. 随机删除开始或目标集中的单元格与未发现集合中的单元格之间的墙壁,并将新发现的单元格移动到相应的集合中。
  4.   
  5. 重复,直到每个单元格位于开始或目标集中。
  6.   
  7. 在两个区域之间移除尽可能多的墙,因为您需要从开始到目标的路径。
  8.   

我需要的是一个步骤5.然后返回并删除所有死角,将其变成一个编织迷宫,我会被设置! (假设迷宫大小是n * n)。

1 个答案:

答案 0 :(得分:1)

最简单的方法怎么样:在构建迷宫时跟踪死角,然后在迷宫完成后,为每个死角移除其三个墙中的一个,使其连接到其他部分迷宫。可能有一些死胡同的配置,如果不以某种方式打破迷宫,这是不可能做到的,但我还没有能够提出这样的例子。

相关问题