LoginSignup
4
3

More than 1 year has passed since last update.

ボンバーマンの思考ルーチン(AI)

Last updated at Posted at 2021-08-23

初めてのQiita投稿の練習に、去年自作したボンバーマンの思考ルーチンを備忘録として上げます。

ezgif.com-gif-maker (1).gif

キャラ画像左下に表示されている数字「1」はプレイヤーの操作、それ以外はCPUの思考ルーチンです。爆炎の表現が微妙なのは許してください。

思考ルーチン

以下のアルゴリズムで実装しました。

  • 移動(オートコンプリート)
    • 基本は直進
    • 壁にぶつかる or 移動予定先が爆弾エリアなら方向転換を行う
    • 一定の確率で何もないところでも方向転換を行う
    • 現在マスが爆弾のエリアに入ったら「退避」に切り替える
  • 退避
    • 付近の安全なマスとそのルートを検索し、その中の最短ルートを選択・実行する
    • 現在マスが安全なら「移動」に切り替える
  • 爆弾設置
    • 現在「退避」状態ならこの処理には入らない
    • 以下の2つの条件を満たしている時、爆弾を設置する
      • 現在マスが壊せるブロックと隣接している
      • 爆弾設置後に安全に退避できるルートが確保できる(再起関数で検索)
    • 一定の確率で何もないところでも爆弾設置を試みる
    • 爆弾設置後は「退避」に切り替える

このアルゴリズムの問題点

  • 「敵を攻撃する」という概念がないので場合によっては永遠にゲームが終わらない
  • 同じところを行ったり来たりしちゃう動作が不自然 ezgif.com-gif-maker (2).gif

▲プレイヤー死亡後、3人のCPUが元気に駆け回る図

最後に

コードを載せようと思いましたが長くなりすぎるので断念しました😢

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3