[JavaScript] ゲーム AI 実装入門:影響マップ

JavaScript

影響マップ

今回は、アイテムの取りやすさに関する影響マップを作成していきます。

影響マップの作成

まず、前回の記事の要領で、各セルまでのスコア(最短距離)をアイテム(リンゴ)の数だけ計算し、それらのスコアを合成します。
ここでのスコアの合成は、それぞれのセルを照らし合わせていき、低い方の値を書き込んでいく処理となります。女の子の位置をスタート地点とし、二つのアイテムのスコアを合成すると以下の図のようになります。

次に、値が高い方が影響が強いという風にしたいため、各セルの値を反転させます。
値の反転は (存在するセルの最大値 – セルの値) とするだけですね。

最後に、値の範囲が 0.0 ~ 1.0 になるように正規化します。
今回必要な正規化は (セルの値 / 存在するセルの最大値) という計算になります。

これでアイテムの取りやすさに関する影響マップの作成は完了です。わかりやすく色を付けたものがこちら。

この影響マップを元にすれば「アイテムが取りやすい方向に女の子を動かす」ということができます。
実行サンプルについては、以下においておきます。女の子はセルが赤いところには居たくなくて、常に青い方を目指す感じですね。ちょっと AI らしくなったかもしれません。

実行サンプル

ソースコード

ソースコードはこちらにあります。

コメント

タイトルとURLをコピーしました