※ 引述《bloodtester.bbs@cszone.cc.ntu.edu.tw (阿偉)》之銘言:
: 畫迷宮只用亂數的話就會沒有解....
: 請問要用怎樣的邏輯去判斷再讓電腦畫的迷宮有解....
以前寫過一個...
這個方法一百多行就可以結束...
先從頭畫出一條亂數決定長度的路....
接著交給recursive做下面的事情....
『亂數找到平面上任何一條路的一點...
由那一點畫出另外一條由亂數決定長度的路...
但是畫的過程中碰到其他路就停下來當做死巷子...』
長度亂數上限不同會產生不同的迷宮難度...
recursive的次數....400*400的迷宮做50000次...(只是經驗,不一定)
因為到最後你會發覺迷宮陣列會有一些空洞還沒畫...
但是得一直recursive讓它畫到...
所以時間複雜度相當差勁是麻煩....
只是P II 300跑起來很快沒差...
這樣做出來的迷宮有一個數學特性...
任意選兩點...將只有一條路可以互通...
所以是相當不錯的單一解決路徑迷宮...
順便說一下,這是我那時寒假花ㄌ兩天想出來的ㄛ^^
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: ccsun2.csie.nct