19

ゲームパックマンを実装したかった。AIについては、多くのフォーラムで見たA*アルゴリズムの使用を考えていました。ただし、いくつかの単純なパスファインディング(特定の障害物を挟んでポイントaからポイントbに移動)の幅優先探索を実装したところ、常に最適なパスが得られることがわかりました。単純なパスファインディングを使用するpacmanのようなゲームでは、グラフにコストの概念がないためかもしれません。それで、パックマンのパスファインディングにA *の代わりにBFSを使用しても大丈夫ですか?

4

6 に答える 6

25

これは状況によって異なりますが、実際にゴーストをパックマンのように機能させたいですか?

これは、幽霊の追跡AIがどのように機能するかについての説明です(それぞれが異なる方法で機能します)。彼らが実際にターゲットタイルに到達しようとする方法についても、上記の章を必ず読んでください。そのページは、パックマンの素晴らしく詳細な分析であり、興味深い読み物です。

于 2010-04-08T23:04:27.787 に答える
19

パスファインディングについては、次の点に注意してください。

ゴーストAIについて話している場合は、チャドが言及したページを確認してください:パックマンドシエ-ゴーストは、ターゲットタイルに到達する方法を決定するときに、実際にはユークリッド距離を使用するだけなので、パックを見つけるのは非常に困難です。場合によっては男。

于 2010-04-08T23:35:48.280 に答える
4

場合によります。BFSは完全かつ最適です(最適なソリューションを見つけるという意味で)

欠点は?それを見つけるのに長い、長い、長い時間がかかるかもしれません!また、問題の影響要因によっては、メモリがすぐに不足する場合があります。

パフォーマンスの問題がない場合は、BFSを維持しますが、巨大な迷路で試してみたい場合は、解決策が得られるまでに時間がかかることがあります。

最高の検索戦略であるA*を試してみることをお勧めします。BFSに問題がない場合でも、A *は実装に適したアルゴリズムであり、多くの優れた方法を学ぶことができます。

于 2010-04-08T23:06:33.620 に答える
3

パックマンの元の設計者が使用したオブジェクト対策アプローチを検討することをお勧めします。これについては、ここここで読むことができます。

ただし、質問に答えるには、機能するものを使用してください。BFSから良い結果が得られている場合は、それを使用してください。パスファインディングを十分に抽象化して、後でより良いものを見つけた場合に置き換えることができるようにすることを忘れないでください。

幸運を!

于 2010-04-08T23:12:29.863 に答える
1

エッジの重みが使用されていない場合、BFSは常に最短パスを提供します。エッジウェイトが必要ない場合は、それを使用します。後でいつでも切り替えることができます。

于 2010-04-08T23:04:09.033 に答える
0

関連する質問、おそらくあなたの質問に答えます:Java 2dゲームでのパスファインディング?

于 2010-04-08T23:06:14.010 に答える