這次來介紹,電腦鼠如何找到終點
要用中右法則前,需學會FLOOD 演算法,這樣才可以讓老鼠迷宮時,可以幫忙找一條建議路徑提供給老鼠走到終點。
S為起點,G為終點,黃色格子為已走過的路徑。
因為規格上指出,起點為東南方,朝向為北邊的方向,邊東、南、西皆為有牆。
根據這條規格,所以我們可以將第一格事先更新,且定義已走過的格子。
因為是中右法則,所以優先順序為:前方優先、右轉第二、左轉第三。因為前方有路,所以老鼠會向前走。
因為是中右法則,所以優先順序為:前方優先、右轉第二、左轉第三。因為前方有路,所以老鼠會向前走。
因為是中右法則,所以優先順序為:前方優先、右轉第二、左轉第三。因為前方沒路,所以老鼠會向右轉。
走到這裡,中間有一格雖然沒有走過,但是它的上、下、左、右、皆走過。
所以我們可以定義中間這格為:已走過。
像這樣,已走過就會填上黃色,定義成已走過。
老鼠走到都走過的路徑時,會執行一次FLOOD 演算法,提供一條路徑供老鼠走到還沒走過的地方。
走到這裡,因為前方沒有走過,所以會放棄藍色的建議路徑,改為中右法則。
照著中右法則,走到這裡。一樣中間有一格沒有走過,但上、下、左、右也走過了,所以可以視為已走過。
當老鼠走到死巷死,一樣會執行FLOOD演算法。
FLOOD 演算法會提供一條建議路徑給老鼠。
老鼠走到沒有走過的路徑時,就會放棄建議路徑了。
用這個想法,就可以幫忙老鼠走到終點了。
其實中右、中左、左中右、右中左,大概的想法都是這樣,只是優先權不一樣而已。
我們用了中右法則好一陣子了,雖然走的路徑很多,但是如果要測試校正的話,中右法則是一個不錯的選擇。
沒有留言:
張貼留言