まず、これはPacManのAIであり、ゴーストではありません。
アイコンの周りでPacManを再生するAndroidライブ壁紙を書いています。画面タッチによるユーザーの提案をサポートしていますが、ゲームの大部分はAIによって行われます。私はゲームのすべてのプログラミングを99%完了していますが、PacMan自身のAIはまだ非常に弱いです。PacManの次の移動方向を決定するための優れたAIの開発に協力を求めています。
私の最初の計画はこれでした:
- 各方向のスコアカウンターをゼロの値で初期化します。
- 現在の位置から開始し、BFSを使用して、キューに追加することにより、可能な4つの初期方向に外側に移動します。
キューから要素をポップし、それがまだ「見られていない」ことを確認し、それが有効なボード位置であることを確認し、対応する初期方向スコアに、以下に基づいて現在のセルの値を追加します。
- ドットあり:プラス10
- パワーアップ:プラス50
- 果物を持っている:プラスの果物の価値(レベルによって異なります)
- おびえた幽霊がいる:プラス200
- 幽霊がパックマンに向かっている:200を引く
- パックマンから逃げる幽霊がいる:何もしない
- ゴーストが垂直に移動している:50を引く
- セルへのステップ数に基づいて、セルの値にパーセンテージを掛けます。最初の方向からのステップが多いほど、セルの値はゼロに近づきます。
現在のセルから3つの可能な方向をエンキューします。
- キューが空になったら、4つの可能な初期方向のそれぞれについて最高のスコアを見つけ、それを選択します。
紙の上ではそれは良さそうに聞こえましたが、幽霊はパックマンを非常に急速に取り囲み、1つが彼に到達するまで、彼は同じ2つまたは3つの細胞で前後にぴくぴく動いています。ゴーストプレゼンスの値を調整しても、効果はありません。私の最も近いドットBFSは、ゲームが終了する前に少なくともレベル2または3に到達できます。
適切なAIを開発するためのコード、考え、リソースへのリンクを探しています。できれば前の2つです。これを今週末に市場でリリースしたいので、ちょっと急いでいます。どんな助けでも大歓迎です。
参考までに、これは当初StackOverflowに投稿されました