2017-04-27 92 views
0

我將如何去用C#編寫辮子迷宮(特別是Unity)和多種解決方案?如何使多條路徑和沒有死衚衕「迷宮」?

從我在短暫的研究中瞭解到的辮子迷宮是一種允許循環的遞歸迷宮,意思是沒有死角。

我發現的最接近的答案是在這個線程處理如何創建more than one successful path,但我不能將兩者結合起來,因爲線程中使用的示例是「完美」迷宮。

通過這些步驟,就可以得到多個成功的路徑,從開始到結束:

  1. 細分迷宮分爲三組:啓動(intially拿着剛開始小區),目標(最初只持有目標細胞)和未被發現的(所有其他)。
  2. 隨機刪除開始或目標集中的單元格與未發現集合中的單元格之間的牆,並將新發現的單元格移至相應集。
  3. 重複,直到每個單元處於啓動或目標集。
  4. ,只要你想從起點至終點的路徑這兩個地區之間的取出許多牆壁。

我需要的是一個5步中,可追溯到並刪除所有死角把它變成一個編織迷宮,我會被設置! (假設迷宮尺寸是n * n)。

回答

1

最簡單的方法如何:在迷宮正在建造時跟蹤死角,然後在迷宮完成後,爲每個死角消除三個牆壁中的一個,以便連接到其他部分的迷宮。可能會有一些死角的配置,如果不以某種方式破壞迷宮,這是不可能實現的,但我一直無法想出這樣一個例子。

+0

任何方式你就可以提供這樣一個代碼示例? – ryanhagz

+1

@ryanhagz SE不是一個代碼寫作服務。把這裏的信息和*字面上的任何現有的迷宮算法*你應該能夠消除死角。 – Draco18s