0

多くの A* Start Pathfinding チュートリアルでは、最後の部分は常に次のようになります。

パスを保存します。ターゲット スクエアから逆方向に作業し、開始スクエアに到達するまで、各スクエアからその親スクエアに移動します。それがあなたの道です。

これを A * star Pathfinding に実装するために何をすべきかがよくわかりません。私が使用している現在の方法は次のとおりです。パスを保存し、逆にしてパスファインダーを再度実行しますが、元のパスリストにあるかどうかを確認し、リストにある場合は追加することで、隣接するノードを取得します。

この方法の問題点は、ときどき奇妙なパスが表示されることです。

4

2 に答える 2

2

訪問したノードの「元の」マップを保持する必要があるだけです。

ターゲットに到達したら、そのノードがソースになるまで、そのノードで「came from」を再帰的にポーリングすることで、ソース ノードに戻ることができます。

これにより、逆のパスが得られることに注意してください。このパスを逆にするだけで、ソースからターゲットへの最短パスが得られます。

最短経路アルゴリズムを再度実行する必要はありません。

于 2011-02-19T23:00:22.807 に答える
1

まだ読んでいない場合は、こちらをご覧ください: http://theory.stanford.edu/~amitp/GameProgramming/

これは、ゲームに A* を実装したときの私のリソースでした。あなたが言及した「親」広場は良い名前ではありません。ターボビンスが述べたように、それは「親」ノードではなく、どこから来たのかです。各ノードには元の参照があるため、最終的にターゲットに到達すると、これらの参照を元に戻すことができるはずです。

于 2011-02-19T23:07:53.380 に答える