私のAS3のA *経路探索の実装では、時々、むしろこのように、最も効率的なルートを返しません。マイA *は経路探索の実装期待される結果を与えていない
[E][X][ ][ ][ ]
[.][X][.][.][ ]
[ ][.][ ][i][S]
(ここで、ノードが歩いあり、かつXがあります。私の想像上のマーカー)
問題:私は合計のスコアが30 +(開始からの距離)10 = 40、上記のタイル私は合計スコアが40でなければなりません(開始からの距離)14 = 54.なぜ54が40の代わりに選ばれたのですか?私はこれを使用して合計得点が最も低いノードを見つけますオープンリスト:
var lowestTScore:int = 10000;
var pointerTo:PathNode;
for each (var Cur:PathNode in openList) {
//loops through each node in openlist and finds the one with lowest total score.
if (Cur.distS + Cur.distE < lowestTScore) {
lowestTScore = Cur.distS + Cur.distE;
pointerTo = Cur;
}
}
私は多分それは私が最後までの距離を計算すると、エラーだ、と思った(私はすべての問題を見ることができません。)。だから私はそのために自分のコードをチェックする:
theNode.distE = (Math.abs(theNode.xpos - endPts[0]) + Math.abs(theNode.ypos - endPts[1])) * 10;
(これは、再び、私は何の問題も見ることができません。)
私は本当にこの上で困惑。
Main.as:http://pastebin.com/ZKQJwY4S PathSearcher:として:http://pastebin.com/KnmWGbQw
(私は直接、問題のコードを投稿することが優れていることを理解しますが、問題のコード:(申し訳ありませんがどこにあるか私は知らない)
ときchの任意の助けありがとう!