迷宮生成
阿新 • • 發佈:2017-10-18
兩個 pan 出棧 列表 起點 class 並且 標記 pre
回溯生成迷宮方法
1.將起點作為當前迷宮單元並標記為已訪問 2.當還存在未標記的迷宮單元,進行循環 1.如果當前迷宮單元有未被訪問過的的相鄰的迷宮單元 1.隨機選擇一個未訪問的相鄰迷宮單元 2.將當前迷宮單元入棧 3.移除當前迷宮單元與相鄰迷宮單元的墻 4.標記相鄰迷宮單元並用它作為當前迷宮單元 2.如果當前迷宮單元不存在未訪問的相鄰迷宮單元,並且棧不空 1.棧頂的迷宮單元出棧2.令其成為當前迷宮單元
隨機普利姆生成迷宮
1.讓迷宮全是墻. 2.選一個單元格作為迷宮的通路,然後把它的鄰墻放入列表 3.當列表裏還有墻時 1.從列表裏隨機選一個墻,如果這面墻分隔的兩個單元格只有一個單元格被訪問過 1.那就從列表裏移除這面墻,即把墻打通,讓未訪問的單元格成為迷宮的通路 2.把這個格子的墻加入列表 2.如果墻兩面的單元格都已經被訪問過,那就從列表裏移除這面墻
迷宮生成