初めてのQiita投稿の練習に、去年自作したボンバーマンの思考ルーチンを備忘録として上げます。
キャラ画像左下に表示されている数字「1」はプレイヤーの操作、それ以外はCPUの思考ルーチンです。爆炎の表現が微妙なのは許してください。
#思考ルーチン
以下のアルゴリズムで実装しました。
-
移動(オートコンプリート)
- 基本は直進
- 壁にぶつかる or 移動予定先が爆弾エリアなら方向転換を行う
- 一定の確率で何もないところでも方向転換を行う
- 現在マスが爆弾のエリアに入ったら「退避」に切り替える
-
退避
- 付近の安全なマスとそのルートを検索し、その中の最短ルートを選択・実行する
- 現在マスが安全なら「移動」に切り替える
-
爆弾設置
- 現在「退避」状態ならこの処理には入らない
- 以下の2つの条件を満たしている時、爆弾を設置する
- 現在マスが壊せるブロックと隣接している
- 爆弾設置後に安全に退避できるルートが確保できる(再起関数で検索)
- 一定の確率で何もないところでも爆弾設置を試みる
- 爆弾設置後は「退避」に切り替える
#このアルゴリズムの問題点
▲プレイヤー死亡後、3人のCPUが元気に駆け回る図
#最後に
コードを載せようと思いましたが長くなりすぎるので断念しました😢