2012-01-22 7 views
5

ランダムに生成された2D都市を持つiOSゲーム(UIViewの使用)を作成しています。 私はA.I.を攻撃する必要があります。それは、(建物に衝突することなく)プレーヤーを見つけるためのインテリジェントな道を行くでしょう。 これを達成するためにどのような種類のアルゴリズムを使用するのか、誰かが正しい方向に向かうことができますか?A.I.無作為に生成された2D都市をナビゲートすることができます

編集:私はA *を使用することに決めました。私はマップ上にグリッドを作成し、すべてのグリッド交点をテストします。そのポイントが建物内にある場合は、ポイントを無効にします。攻撃するA.プレイヤーは現在の場所から、その目的地に近い有効なグリッドポイント(その場所の特定の半径内)に移動します。

+0

ツールrec/to broadとしてクローズする投票。 –

答えて

7

pathfinding algorithmsというアルゴリズムのクラスを探しています。あなたが使用できる多くのアプローチがあります。

古典的なアルゴリズムは、Dijkstra's algorithmA* searchで、オブジェクトを最適なパスに沿ってある場所から別の場所に誘導することができます。これらのアルゴリズムは、2Dワールドをgraphとしてモデル化し、オブジェクトの開始位置からそのグラフ内の目的地までの最短経路を見つけることによって機能します。これらの2つのアルゴリズムは、AIと経路探索で幅広く使用されています。詳細について読む時間を投資することを強くお勧めします。あなたが望むならば、solid tutorial on A* searchがオンラインで利用可能です。

干渉することなくターゲットに移動する必要のある多くのオブジェクトがある場合、複数のオブジェクトをターゲットに近づけるためのシンプルで柔軟なフレームワークを提供する潜在的なフィールドを調べることができます。この手法はthe Berkeley "Overmind" StarCraft AIで使用されており、ロボットモーション計画でよく使用されます。直観的には、この方法は、各位置に「潜在的な」値を割り当て、オブジェクトが高電位から低電位に移動して目標に到達するまで続けます。このアプローチはちょっと難解ですが、いったん動作すれば、インテリジェントに動作する柔軟でカスタマイズ可能なAIにつながる傾向があります。

希望すると便利です。

+0

+1、非常に参考になる – DGund

2

この質問はここにあります:Pacman: how do the eyes find their way back to the monster hole?は、移動するプレーヤーを探すためのランダムな2DグリッドのAIナビゲーションへのアプローチの良い調査です。一般的なコンセンサス(およびPacmanが使用する手法)は、AIでのインテリジェントな経路探索アルゴリズムのベーキングを心配するのではなく、地図自体を使用してプレーヤーの位置情報を保存することです。 ammoQとDan Vintonの2番目と3番目の回答(とその外部リンク)は、魅力的な読書です。

このリンクはここにPacman scent antiobject pattern安価で効果的なアプローチを説明します。

+0

これは良いアプローチだと私は同意しますが、世界がランダムに生成された場合、世界に何かをハードコードすることはできず、より複雑なアルゴリズムを使用して最初の経路探索を行う必要があります。余分な情報を*たくさん*保存しない限り、プレーヤーが常に動き回っている場合、これも機能しません。 – templatetypedef

+0

申し訳ありません@templatebydef、私は、リンクされた質問の既存の解決策または受け入れられた回答ではなく、2番目と3番目のリンクに質問者を紹介していました - どちらも実際に指摘している問題から苦しんでいます。私はOPに見たい興味深いアプローチへのリンクで質問を更新しました。 –

関連する問題