AIプログラムの作り方

(4)ゲームを攻略するための作戦を考える

次にターン中の行動についてご説明します。

「ターン中の行動」イコール「作戦」になります。では、どのような作戦があるか考えてみましょう。

 

最初に、一番簡単な作戦として「最短経路でゴールを目指す」があります。

自分でプレイヤキャラクタを操作する場合には、「マップを見て、最短経路を考え、移動する」を毎ターン繰り返します。

ではAIプログラムで同じ行動をさせるにはどうしたら良いでしょうか?

答えは次のとおりです。①~③までの流れが1ターンの行動になり、これを繰り返すことによりゴールに到着することができます。

人間では一連の動作でできることをプログラミングでは、一つ一つ命令コードとして記述していく(スモウルビーではブロックを組み合わせていく)必要があります。

[最短経路でゴールに移動する]

① マップ情報を取得する

② 始点:自分の位置、終点:ゴールで最短経路を計算する

③ ②の結果に従って1マス移動する

次に、「減点アイテムを避けて最短経路でゴールに移動する」です。最初の作戦と違うのは「減点アイテムを避ける」という条件が一つ加わったことです。

ここでポイントとなるのは、「減点アイテムを避けて最短経路を計算」した場合、その答えがある場合とない場合が想定されることです。

  • マップ上には必ずゴールに到着する経路があるため、最短経路の計算は必ず答えがありますが、減点アイテムを避けてゴールに到着できる経路が必ずあるとは限りません。

このため、条件を付けた場合は、想定される結果に応じた次の行動をプログラムしておく必要があります。

  • ここでは、減点アイテムを避けてゴールする経路があった場合とない場合の両方の行動をプログラムします。
  • 両方の行動を用意してないと、用意していない結果になった場合にそこでプログラムが停止します。
  • この考え方を条件分岐と言います。スモウルビーでは条件分岐のブロックを用意してありますので、これを使ってプログラムすることができます。

[減点アイテムを避けて最短経路でゴールに移動する 但し、この経路がなかった場合は、最短経路でゴールに移動する]

① マップ情報を取得する

② 減点アイテムの座標を確認する

③ 始点:自分の位置、終点:ゴール、避ける:減点アイテムで最短経路を計算する

【③の経路がある場合】

④ ③の結果に従って1マス移動する

 

 

【③の経路がない場合】

④ 出発地:自分の位置、目的地:ゴールで最短経路を計算する

⑤ ④の結果に従って1マス移動する

クリエイティブ・コモンズ・ライセンス

このドキュメント は クリエイティブ・コモンズ 表示 4.0 国際 ライセンス の下に提供されています。