從很久之前就一直在想要如何像以前看到的迷宮產生器一樣做出迷宮,不過一直都想不出來,所以最近就直接去找答案啦。看過別人的範例後,小弟決定自己也練習作看看,並且做成"教如何做迷宮"的軟體,上面的短片是還在製作中的畫面,是展示如何作迷宮的過程。
隨機製作迷宮的想法其實是很簡單的(可是小弟想不出來= =b)。看上方影片的過程可以看出,方法就是先隨便找個牆壁當入口,開完後開始像採礦一樣隨機找可以開路的方向。一旦開到盡頭(沒辦法再開路)後,就在盡頭作個記號確定這邊沒路,然後把全部的地圖都找一次,看看有哪塊地是空格而且還不確定有沒有路,找到的話就繼續開路。到最後整個礦山都被開到沒路後,就找可以作出口的空地再開個出口,就結束了。
找迷宮的路徑則是之前大家熟悉的"遇到岔路向右轉"法,從入口就開始看能不能向右轉,走到出口為止,然後過程中把重複的路徑(走到錯的死路)覆蓋過去就可以了。
因為整個示範程式都是用Active Object在跑的,速度慢很多,原本別人的範例則是用陣列(Array)寫的,龐大的迷宮一眨眼就完成了,所以小弟也用MMF裡面的Array Object跟迴圈作了一次。結果MMF的迴圈次數不能一次超過約上萬次(會被判定為無限迴圈,停止跳出= =),而且速度也比一般的程式慢。不過比起直接用Active Object,還是快了許多。
現在猶豫的是,要不要加入可以玩的部分,因為這可能又要再花個幾天想要怎麼作才會好玩,還有外加的功能等等,光想就覺得好麻煩╮(╯_╰)╭
....如果不用第二次期中考小弟就作╭(′▽`)╯
沒有留言:
張貼留言