ボンバーマンにおけるCPの思考ルーチンについて
Posted: 2009年1月10日(土) 23:12
現在ボンバーマンもどきを作っているのですがCPの思考ルーチンで行き詰ってしまいました
一応対人戦はできるのですがさすがに2人以上集まらないとできないゲームは厳しいと思ったので
CPを作ろうと思った次第です
現在の考え方としては
マスの状態を通れるか通れないかのフラグ分けをし(爆発直前のマスも通れないとする)、それを利用して
・もしその場所が将来的に爆発する(通れないマス上)なら爆発しない位置まで移動
・そうでなければアイテムを探し、アイテムがあればその方向へ移動する
・アイテムが無ければ近くのプレイヤーを探し、プレイヤーが居たらプレイヤーの近くに移動し、
一定距離内に入ったら特定の攻撃パターン(?)でボムを置く
・プレイヤーも近くに居なければソフトブロックを探し、
ソフトブロックがあればソフトブロックの隣に移動し、ボムを置く
・これら以外ならフィールドの中央に向かって移動する
とすれば良いかな?と思っています
ここからが問題なのですが移動する方向を得る方法が分かりません
移動についてはhttp://www5f.biglobe.ne.jp/~kenmo/progr ... /move.htmlを参考に再帰を使って調べていこうと思ったのですが、
例えば、周りを調べて目的のマスが見付かったらその方向への探索は終了、
これを繰り返し、探索が終了した後、
最も近くの目的のマスへの最初の方向というものはどうやって得ればいいのでしょうか
と、非常に伝わりにくい文章で申し訳ないですがどなたかご回答お願いします
環境はVisual C++ 2008 Express Edition
DXライブラリ使用、です
一応対人戦はできるのですがさすがに2人以上集まらないとできないゲームは厳しいと思ったので
CPを作ろうと思った次第です
現在の考え方としては
マスの状態を通れるか通れないかのフラグ分けをし(爆発直前のマスも通れないとする)、それを利用して
・もしその場所が将来的に爆発する(通れないマス上)なら爆発しない位置まで移動
・そうでなければアイテムを探し、アイテムがあればその方向へ移動する
・アイテムが無ければ近くのプレイヤーを探し、プレイヤーが居たらプレイヤーの近くに移動し、
一定距離内に入ったら特定の攻撃パターン(?)でボムを置く
・プレイヤーも近くに居なければソフトブロックを探し、
ソフトブロックがあればソフトブロックの隣に移動し、ボムを置く
・これら以外ならフィールドの中央に向かって移動する
とすれば良いかな?と思っています
ここからが問題なのですが移動する方向を得る方法が分かりません
移動についてはhttp://www5f.biglobe.ne.jp/~kenmo/progr ... /move.htmlを参考に再帰を使って調べていこうと思ったのですが、
例えば、周りを調べて目的のマスが見付かったらその方向への探索は終了、
これを繰り返し、探索が終了した後、
最も近くの目的のマスへの最初の方向というものはどうやって得ればいいのでしょうか
と、非常に伝わりにくい文章で申し訳ないですがどなたかご回答お願いします
環境はVisual C++ 2008 Express Edition
DXライブラリ使用、です