2013-05-27 116 views
1

我被我的路徑查找程序卡住了。目前它可以找到正確的路徑,但我無法僅繪製路徑。 我做了一個小小的變化,只有水平的垂直& ..沒有對角線。所以只使用G成本而不用H或F成本。A *尋路徑。保存路徑

使用這種tutorial

它說: 保存路徑。從目標廣場向後工作,從每個廣場到其父廣場,直到您到達起始廣場。那是你的道路。

問:我怎樣才能找到父廣場,並回到工作中?

目前打印我的封閉列表中的節點,並得到這個: enter image description here

回答

4

當你做一個A * pathfind,每個瓦片也應存儲哪些瓷磚是其母公司(如什麼瓷磚發現的最佳路徑我) 。這樣,當您第一次找到到達結尾的路徑時,您將按如下方式重建路徑:

  • 將結尾圖塊添加到路徑中。
  • 將結束圖塊的父項添加到路徑中。
  • 結束瓷磚的父親的父親的路徑添加到...

......直到你在開始。

如果這不起作用(給你不是最好的路徑),你可能不會讓第一個路徑通過更好的路徑被重寫,或者你使用的啓發式過於自信,實際上最快的路徑從來沒有被測試過,因爲它找到了一條已經結束的路徑,並且被啓發式和A *的貪婪本性所假設,沒有其他路徑更快。

+0

自己找到了。只需要記住方向。現在工作太棒了......還是謝謝你的回答。也許它可以幫助別人! –