ゲームパックマンを実装したかった。 AIについては、多くのフォーラムで見たA *アルゴリズムの使用を考えていました。ただし、いくつかの単純なパスファインディング(特定の障害物を挟んでポイントaからポイントbに移動する)の幅優先探索を実装したところ、常に最適なパスが得られることがわかりました。単純な経路探索を使用するパックマンのようなゲームでは、グラフにコストの概念がないためかもしれません。では、パックマンでのパスファインディングにA *の代わりにBFSを使用しても大丈夫ですか?
経路探索については、次の点に注意してください
ゴーストAIについて話している場合は、チャドが言及したページを確認してください。 パックマンドシエ -ゴーストは、ターゲットタイルに到達する方法を決定するときに、実際にはユークリッド距離を使用します。場合によっては、パックマンを見つけるのが非常に苦手になります。
これは状況によって異なりますが、実際にゴーストをパックマンのように機能させたいですか?
ゴーストの追跡AIがどのように機能するかについての説明があります (それぞれが異なる方法で機能します)。彼らが実際にどのように彼らの ターゲットタイル に到達しようとするかについても、上記の章を必ず読んでください。そのページは、パックマンの素晴らしく詳細な分析であり、興味深い読み物です。
場合によります。 BFSは完全かつ最適です(最適なソリューションを見つけるという意味で)
欠点は?それを見つけるのに長い、長い、長い時間がかかるかもしれません!また、問題の影響要因によっては、メモリがすぐに不足する場合があります。
パフォーマンスの問題がない場合は、BFSを維持しますが、巨大な迷路で試してみたい場合は、解決策が得られるまでに時間がかかることがあります。
最高の検索戦略であるA *を試してみることをお勧めします。 BFSに問題がない場合でも、A *は実装に適したアルゴリズムであり、多くのすばらしいことを学ぶことができます。
エッジの重みが使用されていない場合、BFSは常に最短パスを提供します。エッジウェイトが必要ない場合は、それを使用します。後でいつでも切り替えることができます。
関連する質問、おそらくあなたの質問に答えます: a Java 2d Game? での経路探索