(57)【要約】【課題】シューティングゲームのデモ画面における自機の動作制御方法を提供する。【解決手段】第一存在確率計算部が、ｔ＝ｎＴ（ｎは任意の自然数）において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）を求める。自機目標位置決定部が、上記Ｐｓ（ｎＴ，ｓ）のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする。第二自機存在確率計算部が、時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に、時刻ｔ＝Ｔにおいて自機が各升目ｓに存在する確率Ｐｓｒ（Ｔ，ｓ）を計算する。移動速度決定部が、時刻ｔ＝０における自機が時刻ｔ＝Ｔにおいて到達することができる升目ｓ０’のうち確率Ｐｓｒ（Ｔ，ｓ０’）を最も高くする升目に移動するように、時刻ｔ＝０における自機の移動速度を決定する。【選択図】図１
2008023268.tif 000002
【特許請求の範囲】
【請求項１】
選択された移動速度によって自機が移動を始める時刻ｔをｔ＝０とし、
第一存在確率計算手段が、ｔ＝ｎＴ（ｎは任意の自然数）において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）を求めて、第一自機存在確率記憶手段に格納する第一存在確率計算ステップと、
自機目標位置決定手段が、第一自機存在確率記憶手段から読み出した、ｔ＝ｎＴにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする自機目標位置決定ステップと、
第二自機存在確率計算手段が、時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に、時刻ｔ＝Ｔにおいて自機が各升目ｓに存在する確率Ｐｓｒ（Ｔ，ｓ）を計算して、第二自機存在確率記憶部に格納する第二自機存在確率計算ステップと、
移動速度決定手段が、時刻ｔ＝０における自機が時刻ｔ＝Ｔにおいて到達することができる升目ｓ０’のうち、第二自機存在確率記憶部から読み出した確率Ｐｓｒ（Ｔ，ｓ０’）を最も高くする升目に移動するように、時刻ｔ＝０における自機の移動速度を決定する移動速度決定ステップと、
を有することを特徴とするシューティングゲームの自機動作制御方法。
【請求項２】
請求項１に記載のシューティングゲームの自機動作制御方法であって、
上記第一存在確率計算ステップは、
敵機の初期存在確率計算手段が、時刻ｔ＝０における敵機が、各升目ｓに存在している確率Ｐｅｉ（０，ｓ）を求め、敵機存在確率記憶手段に格納する敵機の初期存在確率計算ステップと、
敵機攻撃弾の初期存在確率計算手段が、時刻ｔ＝０における敵機の攻撃弾が、各升目ｓに存在している確率Ｐｂｊ（０，ｓ）を求め、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾の初期存在確率計算ステップと、
自機の初期存在確率計算手段が、時刻ｔ＝０における自機が、格子に分割されたゲーム画面において、その格子を構成する各升目ｓに存在している確率Ｐｓ（０，ｓ）を求め、第一存在確率記憶手段に格納する自機の初期存在確率計算ステップと、
敵機存在確率計算手段が、時刻ｔ＝τにおいて敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’ （ｉ））と、時刻ｔ＝τと升目ｓｅ’（ｉ）と升目ｓの位置によって移動速度を決定する移動速度決定関数に基づいて決定される移動速度ａに従って敵機が行動単位時間Ｔだけ移動することによって升目ｓｅ’ （ｉ）から升目ｓｅ（ｉ）に移動する確率と、時刻ｔ＝τにおいて自機が升目ｓに存在する確率との積を、すべての升目ｓｅ’と升目ｓの組ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を、すべてのτ＝ｋＴ（ｋはｎ−１以下の自然数）について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップと、
敵機攻撃弾存在確率計算手段が、時刻ｔ＝τにおいて敵機の攻撃弾が升目ｓ’に存在する確率Ｐｂｊ（τ，ｓ’）と、敵機の攻撃弾が移動速度Ｖｂｊに従って行動単位時間Ｔだけ移動することによって升目ｓ’から升目ｓに移動する確率との積を、すべての升目ｓ’ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機の攻撃弾が升目ｓに存在する確率Ｐｂｊ（τ＋Ｔ，ｓ）を、すべての升目ｓとτ＝ｋＴ（ｋはｎ−１以下の自然数）の組について求めて、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾存在確率計算ステップと、
最大値抽出手段が、すべてのτ＋Ｔと升目ｓの組ごとに、上記敵機存在確率記憶手段から読み出した時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓに存在する確率Ｐｅｉ（τ＋Ｔ，ｓ）と、上記敵機攻撃弾存在確率記憶手段から読み出した時刻ｔ＝τ＋Ｔにおいて敵機の攻撃弾が升目ｓに存在する確率Ｐｂｊ（τ＋Ｔ，ｓ）との大小関係を比較し、最も大きい確率を出力する最大値抽出ステップと、
第一自機存在確率計算手段が、時刻ｔ＝τにおいて自機が升目ｓ’に存在する確率Ｐｓ（τ，ｓ’）と、自機が移動速度ｗを選択する確率と、自機が移動速度ｗに従って行動単位時間Ｔだけ移動することによって升目ｓ’から升目ｓに移動する確率Ｐｔｒ（ｓ’，ｓ，ｗ）との積を、すべての升目ｓ’と自機の移動速度ｗの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がτ＋Ｔと升目ｓの組について出力した確率を１から引いた値を乗算することによって、時刻ｔ＝τ＋Ｔにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目ｓに存在する確率Ｐｓ（τ＋Ｔ，ｓ）を、すべての升目ｓとτ＝ｋＴ（ｋはｎ−１以下の自然数）の組について求めて、第一自機存在確率記憶手段に格納する第一自機存在確率計算ステップと、
から構成され、
上記第二自機存在確率計算ステップは、
第二自機存在確率計算手段が、時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に時刻ｔ＝τ＋Ｔにおいて自機が升目ｓ’に存在する確率Ｐｓｒ（τ＋Ｔ，ｓ’）と、自機が移動速度ｗを選択する確率と、自機が移動速度ｗに従って行動単位時間Ｔだけ移動することによって升目ｓから升目ｓ’に移動する確率Ｐｔｒ（ｓ，ｓ’，ｗ）との積を、すべての升目ｓ’と自機の移動速度ｗの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出ステップがＴと升目ｓの組について求めた確率を１から引いた値を乗算することによって、時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に時刻ｔ＝τにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目ｓに存在する確率Ｐｓｒ（ｔ，ｓ）を、すべての升目ｓとτ＝ｍＴ（ｍはｎ−１以下の自然数）の組について求めて、第二自機存在確率記憶手段に格納する第二自機存在確率計算ステップ、
である、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項３】
請求項２に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻ｔ＝τにおいて敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’ （ｉ））と、時刻ｔ＝τと升目ｓｅ’（ｉ）と升目ｓの位置によって移動速度を決定する移動速度決定関数に基づいて敵機が移動速度ａを選択する確率と、敵機が移動速度ａに従って行動単位時間Ｔだけ移動することによって升目ｓｅ’ （ｉ）から升目ｓｅ（ｉ）に移動する確率と、時刻ｔ＝τにおいて自機が升目ｓに存在する確率との積を、すべての移動速度ａと升目ｓｅ’と升目ｓの組ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を、すべてのτ＝ｋＴ（ｋはｎ−１以下の自然数）について求めて、敵機存在確率記憶手段に格納するステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項４】
請求項２に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻ｔ＝τにおいて敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’ （ｉ））と、時刻ｔ＝τと升目ｓｅ’（ｉ）と自機が最も高い確率で存在する升目ｓの位置によって移動速度を決定する移動速度決定関数に基づいて決定される移動速度ａに従って敵機が行動単位時間Ｔだけ移動することによって升目ｓｅ’ （ｉ）から升目ｓｅ（ｉ）に移動する確率と、時刻ｔ＝τにおいて自機が升目ｓに存在確率との積を、すべての升目ｓｅ’ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を、すべてのτ＝ｋＴ（ｋはｎ−１以下の自然数）について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項５】
請求項２に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻ｔ＝τにおいて敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’ （ｉ））と、時刻ｔ＝τと升目ｓｅ’（ｉ）と自機が最も高い確率で存在する升目ｓの位置によって移動速度を決定する移動速度決定関数に基づいて敵機が移動速度ａを選択する確率と、敵機が移動速度ａに従って行動単位時間Ｔだけ移動することによって升目ｓｅ’ （ｉ）から升目ｓｅ（ｉ）に移動する確率と、時刻ｔ＝τにおいて自機が升目ｓに存在する確率との積を、すべての移動速度ａと升目ｓｅ’の組ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を、すべてのτ＝ｋＴ（ｋはｎ−１以下の自然数）について求めて、敵機存在確率記憶手段に格納するステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項６】
請求項２に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻ｔ＝τにおいて敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’ （ｉ））と、時刻ｔ＝τによって移動速度を決定する移動速度決定関数に基づいて決定される移動速度ａに従って敵機が行動単位時間Ｔだけ移動することによって升目ｓｅ’ （ｉ）から升目ｓｅ（ｉ）に移動する確率と、時刻ｔ＝τにおいて自機が升目ｓに存在確率との積を、すべての升目ｓｅ’ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を、すべてのτ＝ｋＴ（ｋはｎ−１以下の自然数）について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項７】
請求項２に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻ｔ＝τにおいて敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’ （ｉ））と、時刻ｔ＝τによって移動速度を決定する移動速度決定関数に基づいて敵機が移動速度ａを選択する確率と、敵機が移動速度ａに従って行動単位時間Ｔだけ移動することによって升目ｓｅ’ （ｉ）から升目ｓｅ（ｉ）に移動する確率と、時刻ｔ＝τにおいて自機が升目ｓに存在する確率との積を、すべての移動速度ａと升目ｓｅ’の組ごとに求め、これら求まった積を加算することによって、時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を、すべてのτ＝ｋＴ（ｋはｎ−１以下の自然数）について求めて、敵機存在確率記憶手段に格納するステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項８】
請求項２に記載したシューティングゲームの自機動作制御方法であって、
上記第二自機存在確率計算ステップは、
加算手段が、上記敵機存在確率記憶手段から読み出した、自機の射線上にある升目ｓｅ（ｉ）に存在する敵機の存在確率Ｐｅｉ（ｔ，ｓｅ（ｉ））を加算する加算ステップと
第一乗算手段が、上記すべての升目ｓと時刻ｔの組ごとに求まった確率Ｐｓｒ（ｔ，ｓ）に、上記加算ステップで求まった加算値に１を加えた値に比例した値を乗算する第一乗算ステップと、
正規化手段が、上記第一乗算ステップで求まった値をそれぞれ、上記乗算ステップで求まった値を時刻ｔにおけるすべての升目ｓについて足し合わせた値で割算することにより上記確率Ｐｓｒ（ｔ，ｓ）を正規化して、第二自機存在確率記憶手段に格納する正規化ステップと、
をさらに有する、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項９】
請求項２〜８に記載したシューティングゲームの自機動作制御方法であって、
上記第二自機存在確率計算ステップは、
第二乗算手段が、上記すべての升目ｓと時刻ｔの組ごとに求まった確率Ｐｓｒ（ｔ，ｓ）に、画面の中央部と上記升目ｓに存在する自機との距離に反比例した値を乗算する第二乗算ステップと、
正規化手段が、上記第二乗算ステップで求まった値をそれぞれ、上記第二乗算ステップで求まった値を時刻ｔにおけるすべての升目ｓについて足し合わせた値で割算することにより上記確率Ｐｓｒ（ｔ，ｓ）を正規化して、第二自機存在確率記憶手段に格納する正規化ステップと、
をさらに有する、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項１０】
請求項１〜９に記載のシューティングゲームの自機動作制御方法であって、
上記ゲーム画面を分割した各升目の一辺の長さは、自機の形状に内接する円の直径と敵機の攻撃弾の形状に内接する円の直径の和の半分の値の３分の１以下である、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項１１】
請求項１〜９に記載のシューティングゲームの自機動作制御方法であって、
上記ゲーム画面を分割した各升目の一辺の長さは、その辺に平行な方向に進む自機のの速さに行動単位時間Ｔをかけたものである、
ことを特徴とするシューティングゲームの自機動作制御方法。
【請求項１２】
選択された移動速度によって自機が移動を始める時刻ｔをｔ＝０とし、
第一自機存在確率記憶手段と、
第二自機存在確率記憶手段と、
ｔ＝ｎＴ（ｎは任意の自然数）において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）を求めて、第一自機存在確率記憶手段に格納する第一存在確率計算手段と、
第一自機存在確率記憶手段から読み出した、ｔ＝ｎＴにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする自機目標位置決定手段と、
時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に、時刻ｔ＝Ｔにおいて自機が各升目ｓに存在する確率Ｐｓｒ（Ｔ，ｓ）を計算して、第二自機存在確率記憶部に格納する第二自機存在確率計算手段と、
時刻ｔ＝０における自機が時刻ｔ＝Ｔにおいて到達することができる升目ｓ０’のうち、第二自機存在確率記憶部から読み出した確率Ｐｓｒ（Ｔ，ｓ０’）を最も高くする升目に移動するように、時刻ｔ＝０における自機の移動速度を決定する移動速度決定手段と、
を有することを特徴とするシューティングゲームの自機動作制御装置。
【請求項１３】
請求項１〜１１の何れかに記載のシューティングゲーム処理方法の各ステップをコンピュータに実行させるためのシューティングゲーム処理プログラム。
【請求項１４】
請求項１３記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シューティングゲームのデモンストレーションプレイ（デモ画面）、又は、オートパイロット制御時における、自機の動作制御方法、装置、プログラム及びその記録媒体に関する。
【背景技術】
【０００２】
従来は、シューティングゲームにおいて自機を適切に自動操作する方法は提示されていなかった。
このため、シューティングゲームのデモンストレーションプレイ（以下、デモ画面という。）は、あるプレイヤーが過去に行った模範的なプレイの動画を再生するだけのものや、ランダムに自機を移動させ、ランダムに攻撃弾を発射するような単純なアルゴリズムを利用するものに限られていた。
ここで、シューティングゲームのデモンストレーションプレイとは、プレイヤーがプレイを行っていないいわば待ち状態のときに、シューティングゲームの内容や魅力を説明するために画面上に表示される、そのシューティングゲームの模範的なプレイのことである。
【非特許文献１】Jonathan Schaeffer,H.Jaap van den Herik,“Games,computers,and artificial intelligence”,Artificial Intelligence,2002,Vol.134,p1-7
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、模範的なプレイの動画を再生するだけでは、いつも同じデモンストレーションプレイが繰り返し表示されるだけであり、そのシューティングゲームの内容や魅力の一部しか表現することができないという問題があった。
また、ランダムに自機を移動させ、ランダムに攻撃弾を発射させるような単純なアルゴリズムは、人の目から見て理にかなった動作をするものではなく、多くの場合、敵機の攻撃によって自機はすぐに破壊されてしまう。このため、そのシューティングゲームの内容を理解させるほどの長い時間に渡って、デモ画面を表示することが難しいという問題があった。
ところで、デモンストレーションプレイにおける自機の動作アルゴリズムを知的なものにするためには、人工知能の技術を導入するのが有効であると考えられるが、現在の人口知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクション系の思考ゲームが中心であった（例えば、非特許文献１参照。）。すなわち、人工知能の技術を、シューティングゲームのようなアクションゲームに応用する試みがないという問題があった。
【０００４】
また、チェス、オセロ、将棋といった思考ゲームを解くための人工知能の技術研究は、効率的に深い探索計算を行うための手法の開発に集中している。たしかに、効率的に深い探索計算を行う技術は重要であるが、シューティングゲームのようなアクションゲームでは、探索の深さよりも、探索計算の処理の実時間性を実現することの方が重要である。しかし、探索計算の処理の実時間性を考慮したアルゴリズムがないという問題があった。
本発明は、上記の問題に鑑み、例えばデモンストレーションプレイに使用することができる、人工知能の技術を応用したシューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００５】
選択された移動速度によって自機が移動を始める時刻ｔをｔ＝０とし、第一存在確率計算手段が、ｔ＝ｎＴ（ｎは任意の自然数）において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）を求めて、第一自機存在確率記憶手段に格納する。自機目標位置決定手段が、第一自機存在確率記憶手段から読み出した、ｔ＝ｎＴにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする。第二自機存在確率計算手段が、時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に、時刻ｔ＝Ｔにおいて自機が各升目ｓに存在する確率Ｐｓｒ（Ｔ，ｓ）を計算して、第二自機存在確率記憶部に格納する。移動速度決定手段が、時刻ｔ＝０における自機が時刻ｔ＝Ｔにおいて到達することができる升目ｓ０’のうち、第二自機存在確率記憶部から読み出した確率Ｐｓｒ（Ｔ，ｓ０’）を最も高くする升目に移動するように、時刻ｔ＝０における自機の移動速度を決定する。
【０００６】
Ｐｓｒ（ｔ，ｓ）は、時刻ｔ＝ｎＴにおいて自機が升目ｓ（Ｘｄ，Ｙｄ）に到達するとした場合の、時刻ｔにおいて自機が升目ｓに存在する確率である。言い換えると、Ｐｓｒ（ｔ，ｓ）は、時刻ｔにおいて升目ｓに存在する自機が、時刻ｔ＝ｎＴにおいて自機が升目ｓ（Ｘｄ，Ｙｄ）に到達する可能性を表わす指標である。具体的には、Ｐｓｒ（ｔ，ｓ）が大きい升目に位置する自機ほど、時刻ｔ＝ｎＴにおいて自機が升目ｓ（Ｘｄ，Ｙｄ）に到達する確率が大きくなる。このため、時刻ｔ＝０において升目ｓ０に位置する自機が、Ｐｓｒ（Ｔ，ｓ０’）を最大にする升目ｓ０’に移動する移動速度ｗを選択することにより、時刻ｔ＝ｎＴにおいて自機が升目ｓ（Ｘｄ，Ｙｄ）に到達することができる確率が最も高くなるのである。すなわち、このようにして、移動速度ｗを選択することにより、自機の生存確率を最も高くすることができる。
【発明の効果】
【０００７】
本発明により、自機が敵機に容易に破壊されなくなるため、シューティングゲームのデモンストレーションを効率的に行うことができる。
【発明を実施するための最良の形態】
【０００８】
［装置構成］
図１に、本発明によるシューティングゲームの自機動作制御装置１の機能構成を例示する。
自機動作制御装置１は、例えば、現在位置取得部２、座標変換部３、第一存在確率計算部４、存在確率記憶部５、自機目標位置決定部８、記憶部１０、移動速度決定部１１、表示部１２、第二自機存在確率計算部９１から構成される。
第一存在確率計算部４は、例えば、第一自機存在確率計算部４１、敵機存在確率計算部４２、敵機攻撃弾存在確率計算部４４から構成される。存在確率記憶部５は、例えば、第一自機存在確率記憶部５１、敵機存在確率記憶部５２、敵機攻撃弾存在確率記憶部５３、第二自機存在確率記憶部５４から構成される。
第一自機存在確率計算部４１は、図６に示すように、例えば、移動確率計算部４１２、積算部４１３、加算部４１４、積算部４１５、加算部４１６、積算部４１７、最大値抽出部４１９、減算部４１０から構成される。
【０００９】
敵機存在確率計算部４２は、図４に示すように、例えば、敵機移動速度部４２１、移動確率計算部４２２、積算部４２３、加算部４２４、積算部４２５、加算部４２６から構成される。
敵機攻撃弾存在確率計算部４４は、図５に示すように、例えば、移動確率計算部４４２、積算部４４３、加算部４４４から構成される。
第二自機存在確率計算部９１は、例えば、移動確率計算部９１２、積算部９１３、加算部９１４、積算部９１５、加算部９１６、積算部９１７、最大値抽出部９１９、減算部９１０から構成される。
【００１０】
＜シューティングゲームの説明＞
図２に、本発明の処理の対象となるシューティングゲームを例示する。画面上には、自機１と自機１の攻撃弾３、敵機２と敵機２の攻撃弾４が表示される。攻撃弾３、敵機２、攻撃弾４は、複数存在していても良い。敵機２が複数存在している場合には、それらの敵機にはそれぞれ異なる番号ｉ（ｉ＝１…Ｉ）が付けられているものとする。同様に、敵機の攻撃弾４が複数存在している場合には、それらの敵機の攻撃弾４にはそれぞれ異なる番号ｊ（ｊ＝１…Ｊ）が付けられているものとする。また、自機１、敵機２、攻撃弾３、攻撃弾４は、Ｘ軸とＹ軸で構成される２次元の平面上に位置するものとする。
【００１１】
プレイヤーは、自機１を操作して、敵機２と闘う。プレイヤーは、一回の操作で、Ｗ種類の移動速度（方向と速さ）で、行動単位時間Ｔだけ自機を移動させることができる。自機１が取り得るＷ種類の移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））は予め決められており、それぞれの移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））には、異なる移動速度番号ｗ（ｗ＝１，…，Ｗ）が付けられているものとする。以下では、移動速度番号ｗを選択する行動のことを行動ｗという。また、プレイヤーは、Ｗ種類の速度による移動と同時に、敵機２を攻撃するための攻撃弾３を発射する操作をすることができる。
【００１２】
例えば、Ｗ＝９のとき、
（Ｖｘｓ（１），Ｖｙｓ（１））＝（Ｖ，０）
（Ｖｘｓ（２），Ｖｙｓ（２））＝（Ｖ，Ｖ）
（Ｖｘｓ（３），Ｖｙｓ（３））＝（０，Ｖ）
（Ｖｘｓ（４），Ｖｙｓ（４））＝（−Ｖ，Ｖ）
（Ｖｘｓ（５），Ｖｙｓ（５））＝（−Ｖ，０）
（Ｖｘｓ（６），Ｖｙｓ（６））＝（−Ｖ，−Ｖ）
（Ｖｘｓ（７），Ｖｙｓ（７））＝（０，−Ｖ）
（Ｖｘｓ（８），Ｖｙｓ（８））＝（Ｖ，−Ｖ）
（Ｖｘｓ（９），Ｖｙｓ（９））＝（０，０）
とすることができる。
【００１３】
敵機２は、移動速度（Ｖｘｅｉ（ａ），Ｖｙｅｉ（ａ））で移動することができる。敵機２が取り得るＡ種類の移動速度（Ｖｘｅｉ（ａ），Ｖｙｅｉ（ａ））は予め定められており、それぞれの移動速度（Ｖｘｅｉ（ａ），Ｖｙｅｉ（ａ））には、異なる移動速度番号ａ（ａ＝１，…，Ａ）が付けられているものとする。以下では、移動速度番号ａを選択する行動のことを行動ａという。敵機２は、自機を攻撃するために攻撃弾４を任意の速度（方向と速さ）で発射することができる。発射された攻撃弾４は、所定の移動速度（Ｖｘｂｊ，Ｖｙｂｊ）で移動する。敵機２は既存のアルゴリズムに従い行動ａを選択し、攻撃弾４を発射するものとする。
自機１が、敵機２及び敵機２が発射する攻撃弾４と衝突した場合には、自機１は破壊され、そこでゲームオーバーとなる。逆に、自機１の攻撃弾３が敵機２に衝突した場合には、敵機２は破壊される。自機１の攻撃弾３によりすべての敵機２を破壊した場合には、ユーザは、そのゲームに勝利することになる。
【００１４】
本発明による自機動作制御装置及び方法は、このようなシューティングゲームにおいて、プレイヤーに代わって自機の動作を制御する。具体的には、行動単位時間Ｔごとに自機の移動速度を決定する。以下では、選択された移動速度によって自機が移動を始める時刻ｔをｔ＝０とする。
【００１５】
＜ステップ１＞
現在位置取得部２は、時刻ｔ＝０における自機の位置（ｘｓ，ｙｓ）、つまり、自機の現在位置（ｘｓ，ｙｓ）を取得する。座標変換部３は、上記取得された自機の現在位置（ｘｓ，ｙｓ）を、升目の座標に変換する。
ここで、ゲーム画面は格子に分割されており、その格子の構成単位のことを升目というものとする。例えば、画面の一番左下の升目の座標を（０，０）とし、その（０，０）の升目のＸ個だけ右に位置し、かつ、Ｙ個だけ上に位置する升目の座標を（Ｘ，Ｙ）とすることができる。ここで、ＸとＹは０以上の整数である。
なお、升目の一辺の長さＳが、その辺に平行な方向に進む自機の速さＶに行動単位時間Ｔをかけた値になるように、すなわち、Ｓ＝ＶＴとなるように、ゲーム画面を格子に分割するとよい。このように升目の一辺の長さを設定することにより、ある升目ｓに存在する自機が、どの移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））に従って移動しても、行動単位時間Ｔ後には、必ずある升目ｓに１００％の確率で存在することになる。このため、計算負担を軽減することができる。
【００１６】
また、升目の一辺の長さが大きいと、本発明の処理が荒くなり、適切に自機を制御することができない場合がある。したがって、升目の一辺の長さＳが、自機の形状に内接する円の直径と、敵機の攻撃弾の形状に内接する円の直径の和の半分の長さの３分の１以下の値になるように、行動単位時間Ｔ及び自機の速さＶを決定すると良い。
座標変換部３は、上記取得された自機の現在位置（ｘｓ，ｙｓ）を含む升目ｓ０（Ｘｓ，Ｙｓ）を選択する。
第一自機存在確率計算部４１は、上記選択された升目ｓ０（Ｘｓ，Ｙｓ）に自機が存在する確率Ｐｓ（０，ｓ０）を、Ｐｓ（０，ｓ０）＝１として、第一自機存在確率記憶部５１に格納する。
【００１７】
＜ステップ２＞
現在位置取得部２は、時刻ｔ＝０における敵機の位置（ｘｅｉ，ｙｅｉ）を取得する。敵機の初期存在確率計算部４５は、上記取得された敵機の位置（ｘｅｉ，ｙｅｉ）を中心とした升目ｓｅｉと、ゲーム画面を分割した格子を構成する各升目ｓと重なる部分の面積を計算する。そして、敵機は、その重なった部分の面積に比例した確率で、各升目ｓに存在しているものとする。すなわち、敵機の位置（ｘｅｉ，ｙｅｉ）を中心とした升目ｓｅｉと、ゲーム画面を分割した格子を構成する各升目ｓｊ（ｊ＝１〜４）が重なっている面積を、Ｄ（ｓｅｉ，ｓｊ）とすると、敵機が、各升目ｓｊ（ｊ＝１〜４）に存在している確率Ｐｅｉ（ｔ，ｓｊ）は、
Ｐｅｉ（ｔ，ｓｊ）＝Ｄ（ｓｅｉ，ｓｊ）／ΣｊＤ（ｓｅｉ，ｓｊ）  …（１）
として与えられる。
【００１８】
例えば、図３に示すように、敵機の位置（ｘｅｉ，ｙｅｉ）を中心とした升目ｓｅｉと、ゲーム画面を分割した格子を構成する各升目ｓｊ（ｊ＝１〜４）が重なっているとする。すなわち、升目ｓｅｉと升目ｓ１が重なっている部分の面積Ｄ（ｓｅｉ，ｓ１）＝８、升目ｓｅｉと升目ｓ２が重なっている部分の面積Ｄ（ｓｅｉ，ｓ２）＝８、升目ｓｅｉと升目ｓ３が重なっている部分の面積Ｄ（ｓｅｉ，ｓ３）＝２、升目ｓｅｉと升目ｓ４が重なっている部分の面積Ｄ（ｓｅｉ，ｓ４）＝２であるとする。このとき、敵機が升目ｓｊ（ｊ＝１〜４）に存在している確率は、次のようして与えられる
Ｐｅｉ（ｔ，ｓ１）＝Ｄ（ｓｅｉ，ｓ１）／ΣｊＤ（ｓｅｉ，ｓｊ）＝８／２０＝０．４
Ｐｅｉ（ｔ，ｓ２）＝Ｄ（ｓｅｉ，ｓ２）／ΣｊＤ（ｓｅｉ，ｓｊ）＝８／２０＝０．４
Ｐｅｉ（ｔ，ｓ３）＝Ｄ（ｓｅｉ，ｓ３）／ΣｊＤ（ｓｅｉ，ｓｊ）＝２／２０＝０．１
Ｐｅｉ（ｔ，ｓ４）＝Ｄ（ｓｅｉ，ｓ４）／ΣｊＤ（ｓｅｉ，ｓｊ）＝２／２０＝０．１
敵機の初期存在確率計算部４５は、上記のようにして、時刻ｔ＝０における敵機が升目ｓに存在する確率Ｐｅｉ（０，ｓ）を計算して、その計算された確率を敵機存在確率記憶部５２に格納する。
【００１９】
上記説明では、升目ｓｅｉが４つの升目ｓと重なる場合を例に取って説明したが、升目ｓｅｉが４つの以上の升目ｓと重なる場合、升目ｓｅｉが２つの升目ｓと重なる場合、升目ｓｅｉが１つの升目ｓと重なる場合であっても、同様に上記（１）式により、敵機が各升目ｓに存在する確率を求めることができる。
なお、例えば、敵機の形状に内接する円の直径と、自機の形状に内接する円の直径との和の半分の値を、敵機の位置（ｘｅｉ，ｙｅｉ）を中心とした升目ｓｅｉの一辺の長さにすることができる。
また、敵機が複数存在する場合には、すべての敵機ｉ（ｉ＝１，・・・，Ｉ）について上記確率を計算して、その確率Ｐｅｉ（ｔ，ｓ）（ｉ＝１，・・・，Ｉ）を敵機存在確率記憶部５２に格納する。Ｐｅｉ（ｔ，ｓ）（ｉ＝１，・・・，Ｉ）は、配列である。
【００２０】
＜ステップ３＞
現在位置取得部２は、時刻ｔ＝０における敵機の攻撃弾の位置（ｘｂｊ，ｙｂｊ）を取得する。敵機攻撃弾の初期存在確率計算部４６は、上記取得された敵機の攻撃弾の位置（ｘｂｊ，ｙｂｊ）を中心とした升目ｓｂｊと、ゲーム画面を分割した格子を構成する各升目ｓと重なる部分の面積を計算する。そして、敵機の攻撃弾は、その重なった部分の面積に比例した確率Ｐｂｊ（０，ｓ）で、各升目ｓに存在しているものとする。その確率の計算方法は、上述した敵機が各升目ｓに存在している確率Ｐｅｉ（０，ｓ）を求める方法と同様である。
なお、例えば、敵機の攻撃弾の形状に内接する円の直径と、自機の形状に内接する円の直径との和の半分の値を、敵機の位置（ｘｂｊ，ｙｂｊ）を中心とした升目ｓｂｊの一辺の長さにすることができる。
また、敵機の攻撃弾が複数存在する場合には、すべての敵機の攻撃弾ｊ（ｊ＝１，・・・，Ｊ）について上記確率を計算して、その確率Ｐｂｊ（ｔ，ｓ）（ｊ＝１，・・・，Ｊ）を敵機存在確率記憶部５２に格納する。Ｐｂｊ（ｔ，ｓ）（ｊ＝１，・・・，Ｊ）は、配列である。
【００２１】
＜ステップ４＞
敵機存在確率計算部４２は、τ＝０，Ｔ，…，（ｎ−１）Ｔとし、時刻ｔ＝τにおける敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’（ｉ））に基づいて、時刻ｔ＝τから行動単位時間Ｔ経過後の時刻ｔ＝τ＋Ｔにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を求める。そして、この処理を繰り返すことによって、最終的に、敵機存在確率計算部４２は、各時刻ｔ＝ｋＴ（ｋ＝１…ｎ）ごとに、敵機が升目ｓｅ（ｉ）に存在している確率を求める。計算した確率Ｐｅｉ（ｔ，ｓｅ（ｉ））（ｔ＝ｋＴ（ｋ＝１…ｎ））は、敵機存在確率記憶部５２に格納される。
まず、敵機存在確率計算部４２は、次式を計算することによって、時刻ｔ＝τにおける敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’（ｉ））に基づいて、ｔ＝τ＋Ｔにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を求める。
【００２２】
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝Σｓ｛Ｐｓ（τ，ｓ）・Σｓｅ（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝｝  …（２）
ここで、Ａｉ（ｓ，ｓｅ’（ｉ），ｔ）は、自機が存在する升目ｓの座標と、敵機が存在する升目ｓｅ’（ｉ）の座標に依存して、移動速度番号ａを決定する関数である。Ａｉ（ｓ，ｓｅ’（ｉ），ｔ）としては、任意の既存のアルゴリズムを利用することができる。例えば、Ａｉ（ｓ，ｓｅ’（ｉ），ｔ）としては、時刻ｔにおいて自機が存在する升目ｓの中心の座標から、時刻ｔにおいて敵機が存在する升目ｓｅ’（ｉ）の中心の座標を引いたベクトルの向きに最も近い方向を与える移動速度（Ｖｘｅｉ（ａ），Ｖｙｅｉ（ａ））の番号ａを選択するアルゴリズムを用いることができる。
【００２３】
Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））は、時刻ｔ＝τにおいて升目ｓｅ’（ｉ）に存在する敵機が、移動速度番号ａ＝Ａｉ（ｓ，ｓｅ’（ｉ），τ））の移動速度（Ｖｘｅｉ（ａ），Ｖｙｅｉ（ａ））に従って行動単位時間Ｔだけ移動することによって、時刻ｔ＝τ＋Ｔにおいて升目ｓｅ（ｉ）に存在している確率である。Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））の計算の仕方については後述する。
【００２４】
以下、図４を参照して、上記式（２）の計算について説明する。図４は、敵機存在確率計算部４２の機能構成を例示する図である。
敵機移動速度決定部４２１は、時刻ｔ＝τにおいて自機が存在している升目ｓと、敵機が存在している升目ｓｅ’（ｉ）とから、上記に例示した既存のアルゴリズムを用いて、敵機の移動速度番号ａ＝Ａｉ（ｓ，ｓｅ’（ｉ），ｔ）を決定する。
移動確率計算部４２２は、升目ｓｅ’（ｉ）に存在している敵機が、上記求まった敵機の移動速度番号ａに対応した移動速度で行動単位時間Ｔだけ移動した結果、升目ｓｅ’（ｉ）に存在している確率Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））を計算する。
積算部４２３は、上記計算されたＰｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））と、敵機存在確率記憶部５２から読み出した敵機が升目ｓｅ’（ｉ）に存在している確率Ｐｅｉ（τ，ｓｅ’（ｉ））との積Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））を求める。
【００２５】
このようにして、敵機移動速度決定部４２１と移動確率計算部４２２と積算部４２３は、自機が存在する升目ｓを所与として、すべての升目ｓｅ’（ｉ）について上記Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））を計算する。
加算部４２４は、各升目ｓｅ’（ｉ）ごとに上記計算されたＰｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））を加算する。すなわち、Σｓｅ’（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝を計算する。
積算部４２５は、上記計算されたΣｓｅ’（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝と、時刻ｔ＝τにおける自機が升目ｓに存在する確率Ｐｓ（τ，ｓ）との積Ｐｓ（τ，ｓ）・Σｓｅ’（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝を求める。
【００２６】
このようにして、敵機移動速度決定部４２１と移動確率計算部４２２と積算部４２３と加算部４２４と積算部４２５は、すべての自機が存在する升目ｓについて上記Ｐｓ（τ，ｓ）・Σｓｅ’（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝を計算する。
加算部４２６は、各升目ｓごとに求まった上記Ｐｓ（τ，ｓ）・Σｓｅ’（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝を加算する。すなわち、Σｓ｛Ｐｓ（τ，ｓ）・Σｓｅ’（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝｝を計算する。
【００２７】
このように、敵機存在確率計算部４２は、自機が存在するすべての升目ｓを考慮して、時刻ｔ＝τにおける敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’（ｉ））に基づいて、ｔ＝τ＋Ｔにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を求める。
上記の処理をすべてのτ（τ＝Ｔ，…，（ｎ−１）Ｔ）について、τが小さい順に行い、各時刻ごとに敵機が升目ｓに存在する確率を求め、最終的に、時刻ｔ＝ｎＴにおいて、敵機が升目ｓに存在する確率を求める。これらの計算された確率は、敵機存在確率記憶部５２に格納される。
【００２８】
なお、ステップ４では、自機が存在する升目ｓと敵機が存在する升目ｓｅ（ｉ）を区別する必要があるため、升目ｓと升目ｓｅ（ｉ）のように表記を分けている。しかし、画面上を分割した格子の構成単位という意味では、升目ｓと升目ｓｅ（ｉ）は同じ升目を意味する。
また、式（２）と数学的に等しい式である次の式、
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝ΣｓΣｓｅ（ｉ）{Ｐｓ（τ，ｓ）・Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝  …（２ａ）
に基づいて、敵機の存在確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を求めても良い。
【００２９】
＜ステップ５＞
敵機攻撃弾存在確率計算部４４は、時刻ｔ＝τにおける敵機の攻撃弾が升目ｓｂ’（ｊ）に存在する確率Ｐｂｊ（τ，ｓｂ’（ｊ））に基づいて、時刻ｔ＝τ＋Ｔにおける敵機の攻撃弾が升目ｓｂ（ｊ）に存在する確率Ｐｂｊ（τ，ｓｂ（ｊ））を求める。そして、敵機攻撃弾存在確率計算部４４は、この処理を繰り返すことによって、最終的に、各時刻ｔ＝ｋＴ（ｋ＝１…ｎ）ごとに、敵機の攻撃弾が升目ｓｂ（ｉ）に存在している確率を求める。計算した確率Ｐｂｊ（ｔ，ｓｂ（ｊ））（ｔ＝ｋＴ（ｋ＝１…ｎ））は、敵機攻撃弾存在確率記憶部５３に格納される。
まず、敵機攻撃弾存在確率計算部４４は、次式を計算することによって、時刻ｔ＝τにおける敵機の攻撃弾が升目ｓｂ’（ｊ）に存在する確率Ｐｂｊ（τ，ｓｂ’（ｊ））に基づいて、時刻ｔ＝τ＋Ｔにおける敵機の攻撃弾が升目ｓｂ（ｊ）に存在する確率Ｐｂｊ（τ，ｓｂ（ｊ））を求める。
【００３０】
Ｐｂｊ（τ＋Ｔ，ｓｂ（ｊ））＝Σｓｂ’（ｊ）｛Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））・Ｐｂｊ（τ，ｓｂ’（ｊ））｝  …（３）
ここで、Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））は、時刻ｔ＝τにおいて升目ｓｂ’（ｊ）に存在する敵機の攻撃弾が、所定の移動速度（Ｖｘｂｊ，Ｖｙｂｊ）に従って行動単位時間Ｔだけ移動することによって、時刻ｔ＝τ＋Ｔにおいて升目ｓｂ（ｊ）に存在している確率である。Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））の計算の仕方については後述する。
【００３１】
以下、図５を参照して、上記式（３）の計算について説明する。図５は、敵機攻撃弾存在確率計算部４４の機能構成を例示する図である。
移動確率計算部４４２は、升目ｓｂ’（ｊ）に存在している敵機の攻撃弾が、記憶部１０から読み出した所定の移動速度（Ｖｘｂｊ，Ｖｙｂｊ）で行動単位時間Ｔだけ移動した結果、升目ｓｂ’（ｊ）に存在している確率Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））を計算する。
積算部４４３は、上記計算されたＰｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））と、敵機攻撃弾存在確率記憶部５３から読み出した敵機の攻撃弾が升目ｓｂ’（ｊ）に存在している確率Ｐｂｊ（τ，ｓｂ’（ｊ））との積Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））・Ｐｂｊ（τ，ｓｂ’（ｊ））を求める。
このようにして、移動確率計算部４４２と積算部４４３は、すべての升目ｓｂ’（ｊ）について上記Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））・Ｐｂｊ（τ，ｓｂ’（ｊ））を計算する。
加算部４４４は、各升目ｓｂ’（ｊ）ごとに上記計算されたＰｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））・Ｐｂｊ（τ，ｓｂ’（ｊ））を加算する。すなわち、Σｓｂ’（ｊ）｛Ｐｔｒｂｊ（ｓｂ’（ｊ），ｓｂ（ｊ））・Ｐｂｊ（τ，ｓｂ’（ｊ））｝を計算する。
【００３２】
このように、敵機攻撃弾存在確率計算部４４は、時刻ｔ＝τにおける敵機の攻撃弾が升目ｓｂ’（ｊ）に存在する確率Ｐｂｊ（τ，ｓｂ’（ｊ））に基づいて、ｔ＝τ＋Ｔにおける敵機が升目ｓｂ（ｊ）に存在する確率Ｐｂｊ（τ＋Ｔ，ｓｂ（ｊ））を求める。
上記の処理をすべてのτ（τ＝Ｔ，…，（ｎ−１）Ｔ）について、τが小さい順に行い、各時刻ごとに敵機の攻撃弾が升目ｓに存在する確率を求め、最終的に、時刻ｔ＝ｎＴにおいて、敵機の攻撃弾が升目ｓに存在する確率を求める。これらの計算された確率は、敵機攻撃弾存在確率記憶部５３に格納される。
【００３３】
＜ステップ６＞
第一自機存在確率計算部４１は、τ＝０，Ｔ，…，（ｎ−１）Ｔとし、時刻ｔ＝τにおける自機が升目ｓ’に存在する確率Ｐｓ（τ，ｓ’）に基づいて、時刻ｔ＝τから行動単位時間Ｔ経過後の時刻ｔ＝τ＋Ｔにおける自機が升目ｓに存在する確率Ｐｓ（τ＋Ｔ，ｓ）を求める。そして、この処理を繰り返すことによって、最終的に、第一自機存在確率計算部４１は、各時刻ｔ＝ｋＴ（ｋ＝１…ｎ）ごとに、自機が升目ｓに存在している確率を求める。計算した確率Ｐｓ（ｔ，ｓ）（ｔ＝ｋＴ（ｋ＝１…ｎ））は、第一自機存在確率記憶部５１に格納される。
まず、第一自機存在確率計算部４１は、次式を計算することによって、時刻ｔ＝τにおける自機が升目ｓ’に存在する確率Ｐｓ（τ，ｓ’）に基づいて、ｔ＝τ＋Ｔにおける自機が升目ｓに存在する確率Ｐｓ（τ＋Ｔ，ｓ）を求める。
【００３４】
Ｐｓ（τ＋Ｔ，ｓ）＝（１−ｍａｘ（Ｐｅｉ（ｔ＋Ｔ，ｓ），Ｐｂｊ（ｔ＋Ｔ，ｓ）））Σｗ｛Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ））・Ｐｓ（τ，ｓ’）｝｝  …（４）
ここで、Ｐｓｅｌ（ｗ，ｔ）は、時刻ｔにおいて自機が移動速度番号ｗを選択する確率である。例えば、自機が等しい確率で移動速度番号ｗを選択すると仮定して、Ｐｓｅｌ（ｗ，ｔ）＝１／Ｗとすることができる。この他にも、ユーザが任意にＰｓｅｌ（ｗ，ｔ）の値を選択することができる。Ｐｓｅｌ（ｗ，ｔ）の値は予め設定され、記憶部１０に格納されているものとする。
【００３５】
Ｐｔｒｓ（ｓ’，ｓ，ｗ）は、時刻ｔ＝τにおいて升目ｓ’に存在する自機が、移動速度番号ｗの移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））に従って行動単位時間Ｔだけ移動することによって、時刻ｔ＝τ＋Ｔにおいて升目ｓに存在している確率である。Ｐｔｒｓ（ｓ’，ｓ，ｗ）の計算の仕方については後述する。
以下、図６を参照して、上記式（４）の計算について説明する。図６は、第一自機存在確率計算部４１の機能構成を例示する図である。
移動確率計算部４１２は、升目ｓ’に存在している自機が、自機の移動速度番号ｗに対応した移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））で行動単位時間Ｔだけ移動した結果、升目ｓ’に存在している確率Ｐｔｒｓ（ｓ’，ｓ，ｗ）を計算する。
積算部４１３は、上記計算されたＰｔｒｓ（ｓ’，ｓ，ｗ）と、第一自機存在確率記憶部５１から読み出した自機が升目ｓ’に存在している確率Ｐｓ（τ，ｓ’）との積Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）を求める。
【００３６】
このようにして、移動確率計算部４１２と積算部４１３は、すべての升目ｓ’について上記Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）を計算する。
加算部４１４は、各升目ｓ’ごとに上記計算されたＰｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）を加算する。すなわち、Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝を計算する。
積算部４１５は、上記計算されたΣｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝と、記憶部１０から読み出した、時刻ｔ＝τにおける自機が移動速度番号ｗを選択する確率Ｐｓｅｌ（ｗ，τ）との積Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝を求める。
【００３７】
このようにして、移動確率計算部４１２と積算部４１３と加算部４１４と積算部４１５は、すべての自機が取り得る移動速度番号ｗについて上記Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝を計算する。
加算部４１６は、各移動速度番号ｗごとに求まった上記Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝を加算する。すなわち、ΣｗＰｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝を計算する。
最大値抽出部４１９は、ｍａｘ（Ｐｅｉ（τ＋Ｔ，ｓ），Ｐｂｊ（τ＋Ｔ，ｓ））を計算する。すなわち、敵機存在確率記憶部５２から読み出した時刻ｔ＝τ＋Ｔにおいて敵機が升目ｓに存在する確率Ｐｅｉ（τ＋Ｔ，ｓ）（ｉ＝１，・・・，Ｉ）と、敵機攻撃弾存在確率記憶部５３から読み出した時刻ｔ＝τ＋Ｔにおいて敵機の攻撃弾が升目ｓに存在する確率Ｐｂｊ（τ＋Ｔ，ｓ）（ｊ＝１，・・・，Ｊ）とを比較して、最も大きい値を出力する。
【００３８】
すなわち、すべてのｉ＝１，・・・，ＩについてのＰｅｉ（τ＋Ｔ，ｓ）と、ｊ＝１，・・・，ＪについてのＰｂｊ（τ＋Ｔ，ｓ）とを比較して最も大きい値を出力する。
減算部４１０は、１から、上記計算されたｍａｘ（Ｐｅｉ（τ＋Ｔ，ｓ），Ｐｂｊ（τ＋Ｔ，ｓ））を減算した値を計算する。
積算部４１７は、加算部４１６が計算したΣｗＰｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ’，ｓ，ｗ）・Ｐｓ（τ，ｓ’）｝と、減算部４１０が計算した１−ｍａｘ（Ｐｅｉ（τ＋Ｔ，ｓ），Ｐｂｊ（τ＋Ｔ，ｓ））との積を求める。
【００３９】
このようにして、１−ｍａｘ（Ｐｅｉ（τ＋Ｔ，ｓ），Ｐｂｊ（τ＋Ｔ，ｓ））を乗算することにより、時刻ｔ＝τ＋Ｔにおいて敵機又は敵機の攻撃弾が升目ｓに存在している場合には自機が破壊されたものとして、自機の存在確率Ｐｓ（τ，ｓ）を計算することができる。
このようにして、第一自機存在確率計算部４１は、時刻ｔ＝τにおける自機が升目ｓに存在する確率Ｐｓ（τ，ｓ）に基づいて、時刻ｔ＝τ＋Ｔにおける自機が升目ｓに存在する確率Ｐｓ（τ＋Ｔ，ｓ）を計算する。
上記の処理をすべてのτ（τ＝Ｔ，…，（ｎ−１）Ｔ）について、τが小さい順に行い、各時刻ごとに自機が升目ｓに存在する確率を求め、最終的に、時刻ｔ＝ｎＴにおいて、自機が升目ｓに存在する確率を求める。これらの計算された確率は、第一自機存在確率記憶部５１に格納される。
【００４０】
＜移動確率の計算方法＞
以下、升目ｓ’に存在する敵機が敵機の移動速度番号ａの移動速度（Ｖｘｅｉ（ａ），Ｖｙｅｉ（ａ））に従って行動単位時間Ｔだけ移動することによって升目ｓに移動する確率Ｐｔｒｅｉ（ｓ’，ｓ，ａ）、升目ｓ’に存在する敵機の攻撃弾が所定の移動速度（Ｖｘｂｊ，Ｖｙｂｊ）に従って行動単位時間Ｔだけ移動することによって升目ｓに移動する確率Ｐｔｒｂｊ（ｓ’，ｓ）、升目ｓ’に存在する自機が移動速度番号ｗの移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））に従って行動単位時間Ｔだけ移動することによって升目ｓに移動する確率Ｐｔｒｓ（ｓ’，ｓ，ｗ）の求め方について説明する。
【００４１】
まず、Ｐｔｒｓ（ｓ’，ｓ，ｗ）の求め方について説明する。自機が移動速度番号ｗを選択して行動単位時間Ｔだけ移動した場合のｘ座標とｙ座標の変位量（ｄｘｓ，ｄｙｓ）は、
ｄｘｓ＝Ｖｘｓ（ｗ）×Ｔ
ｄｙｓ＝Ｖｙｓ（ｗ）×Ｔ
である。自機が存在する升目ｓ’を上記変位量（ｄｘｓ，ｄｙｓ）だけ平行移動した升目をｓｄｓとする。升目ｓｄｓと升目ｓが重なる面積の、升目ｓ全体の面積に対する比率をＰｔｒ（ｓ’，ｓ，ｗ）とする。すなわち、ステップ２で、敵機の存在確率を計算したのと同様にして、Ｐｒｔ（ｓ’，ｓ，ｗ）を求める。
【００４２】
例えば、図１７に示すように、升目ｓｄｓが、升目ｓ１〜ｓ９と重なったとする。ここで、各升目に記載された０から１までの数値は、升目ｓｄｓとその升目が重なる面積の、その升目の面積に対する比率を表わしたものである。このとき、Ｐｔｒ（ｓ’，ｓ１，ｗ）＝０．２、Ｐｔｒ（ｓ’，ｓ２，ｗ）＝０．３３、Ｐｔｒ（ｓ’，ｓ３，ｗ）＝０．０９、Ｐｔｒ（ｓ’，ｓ４，ｗ）＝０．６、Ｐｔｒ（ｓ’，ｓ５，ｗ）＝１、Ｐｔｒ（ｓ’，ｓ６，ｗ）＝０．２４、Ｐｔｒ（ｓ’，ｓ７，ｗ）＝０．２５、Ｐｔｒ（ｓ’，ｓ８，ｗ）＝０．３８、Ｐｔｒ（ｓ’，ｓ９，ｗ）＝０．１となる。
【００４３】
次に、Ｐｔｒｅｉ（ｓ’，ｓ，ａ）の求め方について説明する。敵機が移動速度番号ａを選択して行動単位時間Ｔだけ移動した場合のｘ座標とｙ座標の変位量（ｄｘｅｉ，ｄｙｅｉ）は、
ｄｘｅｉ＝Ｖｘｅｉ（ａ）×Ｔ
ｄｙｅｉ＝Ｖｙｅｉ（ａ）×Ｔ
である。敵機が存在する升目ｓ’の中心に、一辺の大きさが敵機の大きさ（敵機の形状に内接する円の直径）と自機の大きさ（自機に内接する円の直径）の和の半分である升目を新たに作成し、この升目を上記変位量（ｄｘｅｉ，ｄｙｅｉ）だけ平行移動した升目をｓｄｅｉとする。升目ｓｄｅｉと升目ｓが重なる面積の、升目ｓ全体の面積に対する比率をＰｔｒｅｉ（ｓ’，ｓ，ａ）とする。
【００４４】
最後に、Ｐｔｒｂｊ（ｓ’，ｓ）の求め方について説明する。敵機の攻撃弾が所定の移動速度（Ｖｘｂｊ，Ｖｙｂｊ）に従って行動単位時間Ｔだけ移動した場合のｘ座標とｙ座標の変位量（ｄｘｂｊ，ｄｙｂｊ）は、
ｄｘｂｊ＝Ｖｘｂｊ×Ｔ
ｄｙｂｊ＝Ｖｙｂｊ×Ｔ
である。敵機の攻撃弾が存在する升目ｓ’の中心に、一辺の大きさが敵機の攻撃弾の大きさ（敵機の攻撃弾の形状に内接する円の直径）と自機の大きさ（自機の形状に内接する円の直径）の和の半分である升目を新たに作成し、この升目を上記変位量（ｄｘｂｊ，ｄｙｂｊ）だけ平行移動した升目をｓｄｂｊとする。升目ｓｄｂｊと升目ｓが重なる面積の、升目ｓ全体の面積に対する比率をＰｔｒｂｊ（ｓ’，ｓ）とする。
【００４５】
このように、敵機が位置する升目の一辺の長さ、及び、この升目を敵機の位置の変位量（ｄｘｅｉ，ｄｙｅｉ）だけ移動させた升目ｓｄｅｉの一辺の長さを、敵機の大きさ（敵機の形状に内接する円の直径）と自機の大きさ（自機の形状に内接する円の直径）の和の半分の値とすると、敵機が自機を破壊することができる範囲と上記升目が覆う範囲がほぼ同一となり、敵機と自機の接触をより適切に判定することができる。なお、敵機の攻撃弾が位置する升目を敵機の攻撃弾の位置の変位量（ｄｘｂｊ，ｄｙｂｊ）だけ移動させた升目ｓｄｂｊの一辺の長さを、敵機攻撃弾の大きさ（敵機の攻撃弾の形状に内接する円の直径）と自機の大きさ（自機の形状に内接する円の直径）の和の半分の値とした理由についても同様である。
【００４６】
＜ステップ７＞
自機目標位置決定部８は、第一自機存在確率記憶部５１からｔ＝ｎＴにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目ｓに存在する確率Ｐｓ（ｎＴ，ｓ）のうち、その確率を最も高くする升目を選択して、その升目を目標位置（Ｘｄ，Ｙｓ）とする。計算された目標位置（Ｘｄ，Ｙｓ）は、第二自機存在確率計算部９１に出力される。
【００４７】
上記のようにして計算された目標位置（Ｘｄ，Ｙｄ）は、自機が、敵機及び敵機の攻撃弾を避けつつ最も到達しやすい位置である。言い換えると、上記目標位置（Ｘｄ，Ｙｄ）を目指す行動が、自機の生存率を最も高くするということができる。
通常の探索計算では、例えば自機の未来の移動パターン（例えば、Ｗのｎ乗通りの移動方向選択履歴を表わす順列）の一つ一つのデータを保持する必要があるため探索の深さｎが増すと累乗で計算時間が増す。しかし、上記のようにして探索の計算をすると、探索の深さｎが増しても高々探索の深さｎに比例して計算時間が増すだけであり、実時間性の要求を満たすことができるというメリットがある。
【００４８】
＜ステップ８＞
第二自機存在確率計算部９１は、時刻ｔ＝ｎＴにおいて自機が上記目標位置（Ｘｄ，Ｙｄ）に到達することが確定している場合に時刻ｔ＝τ＋Ｔにおいて自機が升目ｓ’に存在する確率Ｐｓｒ（τ＋Ｔ，ｓ’）に基づいて、時刻ｔ＝ｎＴにおいて自機が上記目標位置（Ｘｄ，Ｙｄ）に到達することが確定している場合に時刻ｔ＝τにおいて自機が升目ｓに存在する確率Ｐｓｒ（τ，ｓ）を計算する。この計算を、すべてのτ＝ｍＴ（ｍはｎ−１以下の自然数）について行うことにより、最終的に、時刻ｔ＝ｎＴにおいて自機が上記目標位置に到達することが確定している場合に、時刻ｔ＝Ｔにおいて自機が各升目ｓに存在する確率Ｐｓｒ（Ｔ，ｓ）を計算する。計算された確率Ｐｓｒ（ｔ，ｓ）は、第二自機存在確率記憶部５４に格納される。
【００４９】
まず、第二自機存在確率計算部９１は、次式を計算することによって、時刻ｔ＝ｎＴにおいて自機が上記目標位置（Ｘｄ，Ｙｄ）に到達することが確定している場合に時刻ｔ＝τ＋Ｔにおける自機が升目ｓ’に存在する確率Ｐｓｒ（τ＋Ｔ，ｓ’）に基づいて、時刻ｔ＝ｎＴにおいて自機が上記目標位置（Ｘｄ，Ｙｄ）に到達することが確定している場合にｔ＝τにおける自機が升目ｓに存在する確率Ｐｓｒ（τ，ｓ）を求める。
【００５０】
Ｐｓｒ（τ，ｓ）＝（１−ｍａｘ（Ｐｅｉ（ｔ，ｓ），Ｐｂｊ（ｔ，ｓ）））Σｗ｛Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ））・Ｐｓｒ（τ＋Ｔ，ｓ’）｝｝  …（５）
ステップＳ６で説明したように、Ｐｓｅｌ（ｗ，ｔ）は、時刻ｔにおいて自機が移動速度番号ｗを選択する確率であり、Ｐｔｒｓ（ｓ，ｓ’，ｗ）は、時刻ｔ＝τにおいて升目ｓに存在する自機が、移動速度番号ｗの移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））に従って行動単位時間Ｔだけ移動することによって、時刻ｔ＝τ＋Ｔにおいて升目ｓ’に存在している確率である。
【００５１】
以下、図７を参照して、上記式（５）の計算について説明する。図７は、第二自機存在確率計算部９１の機能構成を例示する図である。
移動確率計算部９１２は、升目ｓに存在している自機が、自機の移動速度番号ｗに対応した移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ））で行動単位時間Ｔだけ移動した結果、升目ｓ’に存在している確率Ｐｔｒｓ（ｓ，ｓ’，ｗ）を計算する。
積算部９１３は、上記計算されたＰｔｒｓ（ｓ，ｓ’，ｗ）と、第二自機存在確率記憶部５４から読み出したＰｓｒ（τ＋Ｔ，ｓ’）との積Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）を求める。
このようにして、移動確率計算部９１２と積算部９１３は、すべての升目ｓ’について上記Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）を計算する。
加算部９１４は、各升目ｓ’ごとに上記計算されたＰｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）を加算する。すなわち、Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝を計算する。
積算部９１５は、上記計算されたΣｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝と、記憶部１０から読み出した、時刻ｔ＝τにおける自機が移動速度番号ｗを選択する確率Ｐｓｅｌ（ｗ，τ）との積Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝を求める。
【００５２】
このようにして、移動確率計算部９１２と積算部９１３と加算部９１４と積算部９１５は、すべての自機が取り得る移動速度番号ｗについて上記Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝を計算する。
加算部９１６は、各移動速度番号ｗごとに求まった上記Ｐｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝を加算する。すなわち、ΣｗＰｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝を計算する。
最大値抽出部９１９は、ｍａｘ（Ｐｅｉ（τ，ｓ），Ｐｂｊ（τ，ｓ））を計算する。すなわち、敵機存在確率記憶部５２から読み出した時刻ｔ＝τにおいて敵機が升目ｓに存在する確率Ｐｅｉ（τ，ｓ）（ｉ＝１，・・・，Ｉ）と、敵機攻撃弾存在確率記憶部５３から読み出した時刻ｔ＝τにおいて敵機の攻撃弾が升目ｓに存在する確率Ｐｂｊ（τ，ｓ）（ｊ＝１，・・・，Ｊ）とを比較して、最も大きい値を出力する。
【００５３】
すなわち、すべてのｉ＝１，・・・，ＩについてのＰｅｉ（τ，ｓ）と、ｊ＝１，・・・，ＪについてのＰｂｊ（τ，ｓ）とを比較して最も大きい値を出力する。
減算部９１０は、１から、上記計算されたｍａｘ（Ｐｅｉ（τ，ｓ），Ｐｂｊ（τ，ｓ））を減算した値を計算する。
積算部９１７は、加算部９１６が計算したΣｗＰｓｅｌ（ｗ，τ）・Σｓ’｛Ｐｔｒｓ（ｓ，ｓ’，ｗ）・Ｐｓｒ（τ＋Ｔ，ｓ’）｝と、減算部９１０が計算した１−ｍａｘ（Ｐｅｉ（τ，ｓ），Ｐｂｊ（τ，ｓ））との積を求める。
【００５４】
このようにして、１−ｍａｘ（Ｐｅｉ（τ，ｓ），Ｐｂｊ（τ，ｓ））を乗算することにより、時刻ｔ＝τにおいて敵機又は敵機の攻撃弾が升目ｓに存在している場合には自機が破壊されたものとして、確率Ｐｓｒ（τ，ｓ）を計算することができる。
このようにして、第二自機存在確率計算部９１は、確率Ｐｓｒ（τ＋Ｔ，ｓ）に基づいて、確率Ｐｓｒ（τ，ｓ）を計算する。
上記の処理をすべてのτ（τ＝Ｔ，…，（ｎ−１）Ｔ）について、τが小さい順に行い、時刻ｔ＝ｎＴにおいて自機が上記目標位置（Ｘｄ，Ｙｄ）に到達することが確定している場合の、各時刻における自機が升目ｓに存在する確率を求め、最終的に、時刻ｔ＝ｎＴにおいて自機が上記目標位置（Ｘｄ，Ｙｄ）に到達することが確定している場合に、時刻ｔ＝Ｔにおいて自機が升目ｓに存在する確率を求める。これらの計算された確率は、第二自機存在確率記憶部５４に格納される。
【００５５】
＜ステップ９＞
移動速度決定部１１は、時刻ｔ＝０における自機が時刻ｔ＝Ｔにおいて到達することができる升目ｓ０’のうち、第二自機存在確率記憶部５４から読み出した確率Ｐｓｒ（Ｔ，ｓ０’）を最も高くする升目に移動するように、時刻ｔ＝０における自機の移動速度を決定する。
升目の一辺の長さが、その辺に平行な方向に進む自機の速さに行動単位時間Ｔをかけた値に設定されている場合には、時刻ｔ＝０における自機が存在する升目ｓ０に隣接する升目又は升目ｓ０が、時刻ｔ＝０における自機が時刻ｔ＝Ｔにおいて到達することができる升目ｓ０’となる。
【００５６】
移動速度決定部１１は、この升目ｓ０’の中で、第二自機存在確率記憶部５４から読み出した確率Ｐｓｒ（Ｔ，ｓ０’）を最も高くする升目を選択する。そして、この升目に移動する自機の移動速度番号ｗを決定する。移動速度決定部１１は、この移動速度番号ｗの移動速度（Ｖｘｓ（ｗ），Ｖｙｓ（ｗ）））に従って移動する自機の、行動単位時間Ｔ後位置を計算して、その移動後の自機を表示部１２に出力する。
以上のステップ１〜ステップ９の処理を、行動単位時間Ｔごとに行うことにより、各行動単位ステップにおける自機の移動速度を決定する。以上が、本実施形態の概要である。
なお、出願時における計算機の能力を考慮すると、上記探索計算における探索の深さｎとしては、１０〜２０程度にすると望ましい。しかし、計算機の性能が今後向上すれば、探索の深さｎをさらに大きな値にすることができる。
【００５７】
［変形例１］
図７に示された第二自機存在確率計算部９１に替えて、図８，９に示された第二自機存在確率計算部９２を用いても良い。図８，９は第二自機存在確率計算部９２の機能構成を例示する図である。
図８に示された第二自機存在確率計算部９２の機能構成は、図７に示された第二自機存在確率計算部９１の機能構成と同じである。第二自機存在確率計算部９２は、図９に示された機能構成・処理を有する点で、第二自機存在確率計算部９１と異なる。第二自機存在確率計算部９２は、第二自機存在確率計算部９１と同じ処理で求めたＰｓｒ（τ，ｓ）を、より敵機を破壊することができるように補正したＰｓｒ’（τ，ｓ）を計算する。
【００５８】
第二自機存在確率計算部９２の移動確率計算部９１２、積算部９１３、加算部９１４、積算部９１５、加算部９１６、積算部９１７、最大値抽出部９１９、減算部９１０は、第二自機存在確率計算部９１と同じであるため、説明を省略する。
射線判定部９２２（図９）は、升目ｓに存在する自機の射線上にある升目ｓｃを選択する。例えば、自機が画面の上方向に攻撃弾を発射する場合には、升目ｓの座標を（Ｘ，Ｙ）とすると、（Ｘｃ，Ｙｃ）（Ｘｃ＝Ｘ，Ｙｃ＞Ｙ）を座標に持つ升目が、自機の射線上にある升目ｓｃとなる。
加算部９２３は、升目ｓｃに存在する敵機の存在確率Ｐｅｉ（τ，ｓ）を加算する。すなわち、Σｓｃ∈ｓＰｅｉ（τ，ｓ）を計算する。そして、計算されたΣｓｃ∈ｓＰｅｉ（τ，ｓ）に１を加算する。
積算部９２４は、記憶部１０から予め定められた定数ｂを読み出し、上記計算された１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ）に乗算する。
積算部９２５は、積算部９１７が計算したＰｓｒ（τ，ｓ）に、上記計算されたｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））を乗算する。これにより、敵機をより多く破壊することができる位置に、より高い確率で自機が存在するようにすることができる。
積算部９２５は、すべての升目ｓについて、上記確率ｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））・Ｐｓｒ（τ，ｓ）を求める。
加算部９２６は、積算部９２５がすべての升目ｓにすいて求めた確率ｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））・Ｐｓｒ（τ，ｓ）を加算する。すなわち、Σｓｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））・Ｐｓｒ（τ，ｓ）を計算する。
【００５９】
割算部９２７は、各升目ｓごとに、Ｐｓｒ’（τ，ｓ）＝{ｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））・Ｐｓｒ（τ，ｓ）}／{Σｓｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））・Ｐｓｒ（τ，ｓ）}を演算する。この演算結果が、Ｐｓｒ’（τ，ｓ）となる。
このように、加算部９２６と割算部９２７は、積算部９２５が求めた確率ｂ（１＋Σｓｃ∈ｓＰｅｉ（τ，ｓ））・Ｐｓｒ（τ，ｓ）を正規化し、ΣｓＰｓｒ’（τ，ｓ）＝１となるようにする。
なお、加算部９２３の替わりに、最大値抽出部９２３’を設けても良い。最大値抽出部９２３’は、ｍａｘｓｃ∈ｓＰｅｉ（τ、ｓ）を計算する。そして、この値に１を加算した値を積算部９２４に出力する。他の処理は、上述したものと同様である。
【００６０】
［変形例２］
自機の位置が常にゲーム画面の中央付近にあることは、未来において不測の事態が生じた場合に、ゲーム画面端のような自機の移動が制限される状況を生み出さないためにも重要である。
このため、図７に示された第二自機存在確率計算部９１に替えて、図８，１０に示された第二自機存在確率計算部９３を用いても良い。図８，１０は第二自機存在確率計算部９３の機能構成を例示する図である。
図８に示された第二自機存在確率計算部９３の機能構成は、図７に示された第二自機存在確率計算部９１の機能構成と同じである。第二自機存在確率計算部９３は、図１０に示された機能構成・処理を有する点で、第二自機存在確率計算部９１と異なる。第二自機存在確率計算部９３は、第二自機存在確率計算部９１と同じ処理で求めたＰｓｒ（τ，ｓ）を、自機がよりゲーム画面の中央に位置するように補正したＰｓｒ’’（τ，ｓ）を計算する。
【００６１】
第二自機存在確率計算部９３の移動確率計算部９１２、積算部９１３、加算部９１４、積算部９１５、加算部９１６、積算部９１７、最大値抽出部９１９、減算部９１０は、第二自機存在確率計算部９１と同じであるため、説明を省略する。
距離計算部９３２（図１０）は、ゲーム画面の中央と、自機が存在する升目ｓとの距離ｒを計算する。
割算部９３４は、記憶部１０から予め定められた定数ｄを読み出し、上記計算されたｒで割算をして、ｄ／ｒを求める。
積算部９３５は、積算部９１７が計算したＰｓｒ（τ，ｓ）に、上記計算されたｄ／ｒを乗算して、（ｄ／ｒ）・Ｐｓｒ（τ，ｓ）を求める。このように、ゲーム画面の中央に位置する自機の存在確率を高くすることにより、自機がよりゲーム画面の中央に位置するように制御することができる。
加算部９２６と割算部９２７は、変形例１で説明したのと同様の方法で、上記補正された確率（ｄ／ｒ）・Ｐｓｒ（τ，ｓ）を正規化して、確率Ｐｓｒ’’（τ，ｓ）を計算する。
【００６２】
なお、ｄ／ｒではなく、距離ｒを入力として、画面中央に近い升目ほど大きく、画面中央から離れる升目ほど小さい値となるＡｚを出力する関数Ｆ（ｒ）、例えば、Ｆ（ｒ）＝ｅｘｐ（−ｒ）、Ｆ（ｒ）＝ｅｘｐ（−ｒ２）、Ｆ（ｒ）＝１／（１＋ｒ２）、Ｆ（ｒ）＝｛ａ＋ｅｘｐ（−ｒ）｝／（ａ＋１）、Ｆ（ｒ）＝｛ａ＋ｅｘｐ（−ｒ２）｝／（ａ＋１）、Ｆ（ｒ）＝｛ａ＋ｂ＾（−ｒ２）｝／（ａ＋１）を用いて、確率Ｐｓｒ（τ，ｓ）を補正しても良い。ａ，ｂは正定数である。ｅｘｐは、自然対数の底の冪乗演算である。記号＾は冪乗を表す。ここでは、０以上１以下の範囲に収まる値を出力する関数を例示したが、適当な定数係数ｋを乗じることで０以上ｋ以下の範囲に収まる値を出力するようにすることもできる。また、画面中央に近い升目ほど大きく画面中央から離れる升目ほど小さい値となる分布の程度は、例えば、ｃを正定数としてＦ（ｒ）＝ｅｘｐ（−ｒ２／ｃ）などとし、このｃの値を適宜に設定することで調整可能である。また、Ｆ（ｒ）＝｛ａ＋ｂ×ｅｘｐ（−ｒ）｝／（ａ＋１）、Ｆ（ｒ）＝｛ａ＋ｃ×ｂ＾（−ｒ２）｝／（ａ＋１）などは、画面中央よりも遠方でａ／（ａ＋１）に漸近するから、ａの値を０ではない値に適宜に設定することで、画面中央から離れた升目ｓのＰｓｒ（τ，ｓ）を事実上無駄にしない、あるいは、画面中央から離れた升目ｓのＰｓｒ（τ，ｓ）を過小評価しないことができる。
【００６３】
また、上記変形例１と上記変形例２を組み合わせて行っても良い。すなわち、上記変形例１で求めたＰｓｒ’（τ，ｓ）を、図１０の積算部９３５に入力することにより、また、上記変形例２で求めたＰｓｒ’’（τ，ｓ）を、図９の積算部９２５に入力することにより、より多くの敵機を破壊することができ、かつ、よりゲーム画面の中央に自機が位置するようにＰｓｒ（τ，ｓ）を補正した確率Ｐｓｒ’’’（τ，ｓ）を求めて、本発明を実施しても良い。
【００６４】
［変形例３］
上記実施形態では、敵機存在確率計算部４２は、上記式（２）を用いて、時刻ｔ＝τにおける敵機が升目ｓｅ’（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’（ｉ））に基づいて、時刻ｔ＝τ＋Ｔにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））を求めた。
しかし、敵機ｉの移動速度ａの決定関数が、敵機の升目ｓｅ’（ｉ）と自機の升目ｓと時刻ｔによって、確率的に記述される場合には、敵機存在確率計算部４２に替えて敵機存在確率計算部４３が、上記式（２）に替えて、
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝Σｓ｛Ｐｓ（τ，ｓ）・Σｓｅ（ｉ）Σａ{ＰＡｉ（ａ，ｓ，ｓｅ’（ｉ），τ）・Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），ａ）・Ｐｅｉ（τ，ｓｅ’（ｉ））｝｝  …（６）
を、図１２に示すように計算することにより、時刻ｔ＝τにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ，ｓｅ’（ｉ））に基づいて、時刻ｔ＝τ＋Ｔにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ’（ｉ））を求めても良い。
【００６５】
ここで、ＰＡｉ（ａ，ｓ，ｓｅ’（ｉ），τ）は、敵機の升目ｓｅ’（ｉ）と自機の升目ｓと時刻ｔによって、移動速度番号ａが選択される確率である。
また、上記式（６）と数学的に等しい次式
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝ΣｓΣｓｅ（ｉ）Σａ{Ｐｓ（τ，ｓ）・ＰＡｉ（ａ，ｓ，ｓｅ’（ｉ），τ）・Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），ａ）・Ｐｅｉ（τ，ｓｅ’（ｉ））｝  …（６ａ）
に基づいて、時刻ｔ＝τ＋Ｔにおける敵機が升目ｓｅ（ｉ）に存在する確率Ｐｅｉ（τ＋Ｔ，ｓｅ’（ｉ））を求めても良い。
上記（２）式、（６）式は、敵機の未来での移動を考慮した敵機の各位置での正確な存在確率の計算方法である。
【００６６】
しかし、計算機に十分な速度や記憶容量がない場合には、図１３に示す敵機存在確率計算部４４、又は、図１４に示す敵機存在確率計算部４５が、以下の簡略化した式に基づいて計算をしても良い。
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝Σｓｅ（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（ｓｍａｘ，ｓｅ’（ｉ），τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝｝  …（２’）
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝Σｓｅ（ｉ）Σａ{ＰＡｉ（ａ，ｓｍａｘ，ｓｅ’（ｉ），ｔ−１）・Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），ａ）・Ｐｅｉ（τ，ｓｅ’（ｉ））}｝  …（６’）
上記（２’）式、（６’）は、自機の升目ｓについて和を取ることを省略した代わりに、関数Ａｉと関数ＰＡｉが参照する升目ｓを、時刻ｔ＝τにおける自機の存在確率Ｐｓ（τ，ｓ）を最大化する升目ｓｍａｘとしたものである。
【００６７】
また、図１５に示す敵機存在確率計算部４６、又は、図１６に示す敵機存在確率計算部４７が、さらに簡略化した、下記の式を用いて計算をしても良い。
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝Σｓｅ（ｉ）｛Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），Ａｉ（τ））・Ｐｅｉ（τ，ｓｅ’（ｉ））｝｝  …（２’’）
Ｐｅｉ（τ＋Ｔ，ｓｅ（ｉ））＝Σｓｅ（ｉ）Σａ{ＰＡｉ（ａ，ｔ−１）・Ｐｔｒｅｉ（ｓｅ’（ｉ），ｓｅ（ｉ），ａ）・Ｐｅｉ（τ，ｓｅ’（ｉ））}｝  …（６’’）
上記（２’’）式、（６’’）は、関数Ａｉと関数ＰＡｉが、時刻ｔのみに依存することとしたものである。
【００６８】
［変形例４］
上記実施形態においては、格子は画面に固定されており、ｔ＝ｚＴにおける自機の位置が升目の中心に位置するとは限らなかった（ｚは整数）。そこで、ｔ＝ｚＴにおける自機の現在位置が升目の中心に位置するように、格子を張り直しても良い。ｔ＝ｚＴにおける自機の現在位置が升目の中心に位置するように格子を張り直すことにより、升目の一辺の長さＳがＳ＝ＶＴである場合には、Ｐｔｒ（ｓ’，ｓ，ｗ）の値が必ず０か１となる。なぜなら、かかる場合には、ｘ軸方向とｙ軸方向の自機の位置の変位量と、升目の一辺の長さが一致するため、升目ｔ＝ｚＴにおいて自機が位置する升目を自機の位置の変位量（ｄｘｓ，ｄｙｓ）だけ移動させた升目ｓｄｓは、格子上の升目とずれがなく、ぴったりと重なるからである。
【００６９】
その他の実施例・変形例について
また、上記シューティングゲームの自機動作制御装置・方法をコンピュータによって実現することができる。この場合、シューティングゲームの自機動作制御装置・方法の内容はプログラムによって記述される。そして、このプログラムを、図１１に示すようなコンピュータで実行することにより、上記シューティングゲームの自機動作制御装置・方法の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００７０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００７１】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、シューティングゲームの自機動作制御装置・方法を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
以上の各実施形態の他、本発明であるシューティングゲームの自機動作制御装置・方法等は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】シューティングゲームの自機動作制御装置の機能構成を例示した図。
【図２】シューティングゲームの模式図。
【図３】存在確率の計算についての説明を補助する図。
【図４】敵機存在確率計算部４２の機能構成を例示した図。
【図５】敵機攻撃弾存在確率計算部４４の機能構成を例示した図。
【図６】第一自機存在確率計算部４１の機能構成を例示した図。
【図７】第二自機存在確率計算部９１の機能構成を例示した図。
【図８】第二自機存在確率計算部９２，９３の機能構成を例示した図。
【図９】第二自機存在確率計算部９２の機能構成を例示した図。
【図１０】第二自機存在確率計算部９３の機能構成を例示した図。
【図１１】シューティングゲームの自機動作制御装置・方法をコンピュータにより実行する場合の機能構成を例示した図。
【図１２】敵機存在確率計算部４３の機能構成を例示した図。
【図１３】敵機存在確率計算部４４の機能構成を例示した図。
【図１４】敵機存在確率計算部４５の機能構成を例示した図。
【図１５】敵機存在確率計算部４６の機能構成を例示した図。
【図１６】敵機存在確率計算部４７の機能構成を例示した図。
【図１７】存在確率の計算についての説明を補助する図。
【図１】
2008023268.tif 000003
【図２】
2008023268.tif 000004
【図３】
2008023268.tif 000005
【図４】
2008023268.tif 000006
【図５】
2008023268.tif 000007
【図６】
2008023268.tif 000008
【図７】
2008023268.tif 000009
【図８】
2008023268.tif 000010
【図９】
2008023268.tif 000011
【図１０】
2008023268.tif 000012
【図１１】
2008023268.tif 000013
【図１２】
2008023268.tif 000014
【図１３】
2008023268.tif 000015
【図１４】
2008023268.tif 000016
【図１５】
2008023268.tif 000017
【図１６】
2008023268.tif 000018
【図１７】
2008023268.tif 000019