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