ボンバーマンのようなゲームを制作途中です。littlestreamといいます。
プレイヤーキャラクターだけ動いてブロックを破壊するところまで作ったのですが、
ボンバーマンのようなAIを作る事ができないので、いろいろネットで調べた結果、
ダイクストラ法という最短距離を求めるアルゴリズムや再帰関数で求めたり、2分木?で
計算していたりといろいろな方がいました。
そこで、C/C++とDXLIBもしくは、3DSのプチコン3号でそれぞれ
(作った時期が違うため全然ソースが違う)爆破処理を作った所までは進んだのですが、
ボンバーマンのAIとして分かりやすく作る為にはどういうデータ構造や
アルゴリズムが必要なのか?とか、まずは目的の位置まで何歩で行けるのか計算する
処理が分からないので教えてください。
自分なりに考えたアルゴリズムは以下です。
1.現在位置のXY座標からマスの大きさの割り算によってマスのXY座標に変換
2.マップを参照して現在マスの位置から乱数によって2つに分岐する
3.分岐その1:破壊できるマスに一番近い所へ行く:5へ行く
4.分岐その2:敵の位置に一番近い所へ行く:5へ行く
5.爆弾を置き、爆弾から一番遠い所へ逃げる:2へ行く
この場合、近い所と遠い所を求める計算方法が分からないのと、そもそも、爆弾から遠い所に逃げても
現在位置の評価関数がないとまともに逃げられない気がします。しかし、その評価関数の作り方も
分からないです。爆弾から上下左右の火力圏内が一番危ない気がします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/20 10:05