上面的源程序已經對搜索算法作了很好的注釋。我們還是來看兩幅反映算法運行時地圖上各標記值的圖片吧:
圖中,帶圓圈的紅色的數字“1”是“目的地”,也就是算法開始的地方,因為該算法是從目的地開始往回尋找出發點。在改進後的算法中,標記值始終是在“1、2、3”這三個數中循環,而不是象以前一樣一直增大。在圖中,算法按“紅、黃、綠、藍、粉紅、青”的順序從目的地往外搜索,直到遇到“工人”而返回成功,或者填滿能夠到達的空地而返回失敗。
算法經過這次改進,搜索的距離就不象原來一樣受限於 8192 步。而且也將地圖所占用的內存空間減少到原來的二分之一。
這次改進,除了仔細重寫了 FindPath 類以外,程序其余地方只是將所有的“ushort”替換為“byte”就行了,因為本程序只在涉及地圖的地方使用過“ushort”。