Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4804230B2 - Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof - Google Patents
[go: Go Back, main page]

JP4804230B2 - Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof - Google Patents

Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof Download PDF

Info

Publication number
JP4804230B2
JP4804230B2 JP2006155358A JP2006155358A JP4804230B2 JP 4804230 B2 JP4804230 B2 JP 4804230B2 JP 2006155358 A JP2006155358 A JP 2006155358A JP 2006155358 A JP2006155358 A JP 2006155358A JP 4804230 B2 JP4804230 B2 JP 4804230B2
Authority
JP
Japan
Prior art keywords
attack
aircraft
target position
shooting game
bullet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006155358A
Other languages
Japanese (ja)
Other versions
JP2007319560A (en
Inventor
洋 川野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006155358A priority Critical patent/JP4804230B2/en
Publication of JP2007319560A publication Critical patent/JP2007319560A/en
Application granted granted Critical
Publication of JP4804230B2 publication Critical patent/JP4804230B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、画面上に自機と敵機を表示し、自機をW種類の行動によって所定の時間だけ移動させる操作を行って、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理方法、その装置、そのプログラム及びその記録媒体に関する。   The present invention is a shooting game in which a player and an enemy aircraft are displayed on a screen, and the player moves the enemy aircraft for a predetermined time by W types of actions to fight an enemy aircraft that attacks the enemy aircraft. The present invention relates to a processing method, an apparatus thereof, a program thereof, and a recording medium thereof.

シューティングゲームの処理方法、特に敵機の攻撃弾発射動作を制御する方法としては、例えば、自機の位置とは無関係に敵機が一定方向に攻撃弾を発射するアルゴリズムや、ランダムな方向に攻撃弾を発射するアルゴリズムがあった。また、自機の位置を考慮するアルゴリズムとしては、例えば、攻撃弾発射時点の自機位置に向けて攻撃弾を発射するアルゴリズムがあった。
また、チェス、オセロ、将棋といって非アクションの思考ゲームにおいては、人工知能の技術を導入したアルゴリズムの研究が行われている(例えば、非特許文献1参照)。
Jonathan Schaeffer,H.Jaap van den Herik,“Games,computers,and artificial intelligence”,Artificial Intelligence,2002,Vol.134,p1-7
Shooting game processing methods, especially methods for controlling the attacking action of enemy aircraft, include, for example, an algorithm in which an enemy aircraft launches an attacking bullet in a certain direction regardless of the position of the enemy aircraft, or an attack in a random direction. There was an algorithm to fire bullets. Further, as an algorithm that considers the position of the own aircraft, for example, there is an algorithm that fires an attack bullet toward the own aircraft position at the time of launching the attack bullet.
In addition, in a non-action thinking game such as chess, othello, and shogi, research on algorithms incorporating artificial intelligence technology has been conducted (for example, see Non-Patent Document 1).
Jonathan Schaeffer, H. Jaap van den Herik, “Games, computers, and artificial intelligence”, Artificial Intelligence, 2002, Vol. 134, p1-7

しかし、従来技術による敵機の攻撃弾発射アルゴリズムは、単純であり、プレイヤーに飽きられやすいという問題があった。
また、各プレイヤーの自機操作の癖を考慮した敵機の攻撃弾発射アルゴリズムの自動的な更新も行われていなかったため、ユーザが一度そのゲームに習熟してしまうと、ユーザがすぐにそのゲームに飽きてしまうという問題があった。
そのような問題を解くためには、人工知能の技術を導入するのが有効であると考えられるが、現在人工知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクションの思考ゲームが中心であり、人工知能の技術をシューティングゲームのようなアクションゲームに応用する試みはなかった。
However, there is a problem that the attacking bullet firing algorithm of the enemy aircraft according to the prior art is simple and is easily bored by the player.
Also, since the enemy's attack bullet firing algorithm was not automatically updated in consideration of the trap of each player's own operation, once the user became familiar with the game, the user immediately There was a problem of getting bored.
In order to solve such problems, it is considered effective to introduce artificial intelligence technology, but currently research on games in artificial intelligence is centered on non-action thinking games such as chess, othello and shogi. There was no attempt to apply artificial intelligence technology to action games like shooting games.

また、チェス、オセロ、将棋といった思考ゲームを解くための人工知能技術の研究は、効率的に深い探索計算を行うための手法の開発に集中している(例えば、非特許文献1参照。)。もちろん、シューティングゲームにおいても、知的な敵機の動作アルゴリズムを開発するためには、探索技術は重要である。しかし、シューティングゲームにおいて、探索の深さに関する要求は低く、むしろ、いかにしてアクションゲームにおいて求められているレベルの実時間性を実現するかが大事である。しかし、そのような要求を満たす技術はなかった。   Also, research on artificial intelligence technology for solving thinking games such as chess, othello, and shogi has concentrated on the development of methods for efficiently performing deep search calculations (see, for example, Non-Patent Document 1). Of course, even in shooting games, search technology is important to develop intelligent enemy aircraft operation algorithms. However, in the shooting game, the demand for the depth of search is low. Rather, how to achieve the level of real time required in the action game is important. However, there was no technology that could meet such requirements.

本発明によれば、画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理方法であって、自機移動パターン生成手段が、所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する。衝突判定手段が、自機が、上記自機の各移動先の候補へ移動する途中の各位置において、敵機が既に発射した攻撃弾と衝突するかどうかを判定する。到達時間差計算手段が、上記衝突判定過程において衝突しないと判定された場合には、自機が上記衝突判定過程において衝突しないと判定された上記自機の各移動先の候補へ移動する途中の位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が上記衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する。攻撃目標位置判定手段が、上記差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、上記衝突しないと判定された位置を攻撃目標位置とする。攻撃弾発射手段が、上記攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる。 According to the present invention, a shooting game processing method for fighting an enemy aircraft that attacks the own aircraft by displaying the own aircraft and the enemy aircraft on the screen and moving the own aircraft by an operation of selecting W types of actions. Then, the own device movement pattern generation means generates a candidate for each movement destination of the own device that performs an action that moves for a predetermined time (hereinafter referred to as an action unit time T) D times. The collision determination means determines whether or not the enemy aircraft collides with an attack bullet that has already been fired at each position in the middle of moving to the destination candidate of the own aircraft. When the arrival time difference calculating means determines that the collision does not occur in the collision determination process, the position where the own apparatus is moving to each destination candidate of the own apparatus determined not to collide in the collision determination process The absolute value of the difference between the time required to move to and the time required to move to the position where it is determined that the attacking bullet newly fired by the enemy aircraft does not collide is calculated. The attack target position determining means determines whether or not the absolute value of the difference is smaller than a predetermined value. If the absolute value of the difference is smaller than the predetermined value, the position determined not to collide is determined. The attack target position. The attack bullet launching means causes the enemy aircraft to launch a new attack bullet toward the attack target position.

人工知能の分野における探索計算を応用し、敵機の攻撃弾発射アルゴリズムをより知的なものにすることができる。これにより、プレイヤーに飽きられにくいシューティングゲームを作成することができる。   By applying search calculation in the field of artificial intelligence, it is possible to make the attack bullet launch algorithm of enemy aircraft more intelligent. Thereby, it is possible to create a shooting game that is hard to get bored by the player.

[理論的背景]
図3に、本発明の処理の対象となるシューティングゲームを例示する。画面上には、自機1と自機1の攻撃弾3、敵機2と敵機2の攻撃弾4が表示される。攻撃弾3、敵機2、攻撃弾4は、複数存在していても良い。自機1、敵機2、攻撃弾3、攻撃弾4は、X軸とY軸で構成される2次元の平面上に位置するものとする。
[Theoretical background]
FIG. 3 exemplifies a shooting game that is a target of processing of the present invention. On the screen, the own machine 1 and the attack bullet 3 of the own machine 1, and the enemy machine 2 and the attack bullet 4 of the enemy machine 2 are displayed. There may be a plurality of attack bullets 3, enemy aircraft 2, and attack bullets 4. The own aircraft 1, enemy aircraft 2, attack bullet 3, and attack bullet 4 are assumed to be located on a two-dimensional plane composed of the X axis and the Y axis.

ユーザは、自機1を操作して、敵機2と闘う。ユーザは、一回の操作で、W種類の移動速度(方向と速さ)で、行動単位時間Tだけ自機を移動することができる。自機1が取り得るW種類の移動速度(Vsx(w),Vsy(w))は予め決められており、それぞれの移動速度(Vsx(w),Vsy(w))には、移動速度番号w(w=1,…,W)が付けられているものとする。以下では、移動速度番号wを選択する行動のことを行動(w)という。また、ユーザは、W種類の速度による移動と同時に、敵機2を攻撃するための攻撃弾3を発射する操作をすることができる。   The user operates the own aircraft 1 to fight the enemy aircraft 2. The user can move his / her own device for the behavior unit time T at W movement speeds (direction and speed) in one operation. W types of movement speeds (Vsx (w), Vsy (w)) that the own device 1 can take are determined in advance, and each movement speed (Vsx (w), Vsy (w)) has a movement speed number. It is assumed that w (w = 1,..., W) is attached. Hereinafter, the action of selecting the moving speed number w is referred to as action (w). In addition, the user can perform an operation of firing an attack bullet 3 for attacking the enemy aircraft 2 at the same time as movement at W speeds.

敵機2は、行動単位時間Tごとに、K種類の移動速度(方向と速さ)で行動することができる。敵機2が取り得るK種類の移動速度(Vex(k),Vey(k))は予め決められており、それぞれの移動速度(Vex(k),Vey(k))には、移動速度番号k(k=1,…,K)が付けられているものとする。また、敵機2は移動と同時に、攻撃弾4を発射することができる。敵機が発射した攻撃弾は、一定速度(Vbikx(t),Vbiky(t))で移動するものとする。   The enemy aircraft 2 can act at K types of moving speeds (direction and speed) for each behavior unit time T. K types of moving speeds (Vex (k), Vey (k)) that can be taken by the enemy aircraft 2 are determined in advance, and each moving speed (Vex (k), Vey (k)) has a moving speed number. It is assumed that k (k = 1,..., K) is attached. Further, the enemy aircraft 2 can fire the attack bullet 4 simultaneously with the movement. Assume that attack bullets fired by enemy aircraft move at a constant speed (Vbikx (t), Vbiky (t)).

自機1が、敵機2及び敵機2が発射する攻撃弾4と衝突した場合には、自機1は破壊され、そこでゲームオーバーとなる。逆に、自機1の攻撃弾3が敵機2に衝突した場合には、敵機2は破壊される。自機1の攻撃弾3によりすべての敵機2を破壊した場合には、ユーザは、そのゲームに勝利することになる。   When the own aircraft 1 collides with the enemy aircraft 2 and the attack bullet 4 fired by the enemy aircraft 2, the own aircraft 1 is destroyed and the game is over there. On the contrary, when the attack bullet 3 of the own aircraft 1 collides with the enemy aircraft 2, the enemy aircraft 2 is destroyed. When all the enemy aircrafts 2 are destroyed by the attack bullet 3 of the own device 1, the user wins the game.

このようなシューティングゲームにおいて、理想的な強さを持った敵機は、自機の取り得る「安全行動パターン」の数が少なくなるように攻撃弾を発射する敵機である。敵機が攻撃弾を発射する時点で存在している自機の取り得る「安全行動パターン」の数を減らすことができれば、敵機は自機を効率的に追い詰めているということができるためである。   In such a shooting game, an enemy aircraft with ideal strength is an enemy aircraft that launches an attack bullet so that the number of “safe behavior patterns” that the aircraft can take is small. If the enemy aircraft can reduce the number of “safe behavior patterns” that can be taken by the own aircraft at the time of firing the attack bullets, it can be said that the enemy aircraft is effectively pursuing the own aircraft is there.

ここで、「安全行動パターン」は以下のように定義される。自機がW種類の速度による移動を所定の回数(D回)だけ行うことができるとする。このとき、自機が取り得る全行動パターンについて、自機が敵機の攻撃弾により破壊されるかどうかを調べる。すなわち、各行動の深さd(d={1,…,D})においてW種類の速度による移動を行うことによって自機が取り得る全行動パターンについて、自機が敵機の攻撃弾により破壊されるかどうかを調べる。全行動パターンのうち、自機が攻撃弾により破壊されない行動パターンのことを安全行動パターンとする。逆に、自機が攻撃弾により破壊されてしまう行動パターンのことを死亡行動パターンとする。全行動パターンと安全行動パターンと死亡行動パターンの間には、全行動パターン数=安全行動パターンの総数+死亡行動パターンの総数、という関係がある。   Here, the “safe behavior pattern” is defined as follows. It is assumed that the own device can move a predetermined number of times (D times) at W speeds. At this time, with respect to all the action patterns that the aircraft can take, it is checked whether or not the aircraft is destroyed by the attacking bullets of the enemy aircraft. That is, for all the action patterns that the aircraft can take by moving at the speed of W types at each action depth d (d = {1,..., D}), the aircraft is destroyed by the attacking bullet of the enemy aircraft. Find out if you are. Among all action patterns, an action pattern in which the aircraft is not destroyed by an attack bullet is defined as a safe action pattern. Conversely, a behavior pattern in which the aircraft is destroyed by an attack bullet is defined as a death behavior pattern. Between all behavior patterns, safety behavior patterns, and death behavior patterns, there is a relationship that the total number of behavior patterns = the total number of safety behavior patterns + the total number of death behavior patterns.

例えば、W=3、D=3の場合の全行動パターンの例を図4に示す。図4においては、※1、※2、※3において衝突が起こるものとする。また、図4において、実線は、各深さdにおいて、w=1の行動を選択した場合の自機の描く軌跡を表している。破線は、各深さdにおいて、w=2の行動を選択した場合の自機の描く軌跡を表している。一点鎖線は、各深さdにおいて、w=3の行動を選択した場合の自機の描く軌跡を表している。枝の末端に○が示されているものが安全行動パターンであり、枝の末端に×が示されているものが死亡行動パターンである。   For example, FIG. 4 shows an example of all behavior patterns when W = 3 and D = 3. In FIG. 4, it is assumed that a collision occurs at * 1, * 2, and * 3. In FIG. 4, a solid line represents a trajectory drawn by the own device when an action of w = 1 is selected at each depth d. A broken line represents a trajectory drawn by the own device when an action of w = 2 is selected at each depth d. An alternate long and short dash line represents a trajectory drawn by the own device when an action of w = 3 is selected at each depth d. A pattern with a circle at the end of a branch is a safe behavior pattern, and a pattern with a cross at the end of a branch is a death behavior pattern.

以下では、ある位置に自機が移動するのにかかる時間と、その位置に敵機が発射する攻撃弾が移動するのにかかる時間との差の絶対値が所定の値Cよりも小さい場合には、その位置のことを攻撃弾の目標位置(以下、攻撃目標位置とする。)と呼ぶ。所定の値Cは、例えば、自機の大きさと敵機攻撃弾の大きさの和の半分をS、敵機の攻撃弾の速度をVeとすると、S/Veとすることができる。また、自機の大きさとしては、例えば、自機の形状に内接する円の直径、敵機攻撃弾の大きさとしては、敵機攻撃弾の形状に内接する円の直径を取ることができる。   In the following, when the absolute value of the difference between the time taken for the own aircraft to move to a certain position and the time taken for the attack bullets fired by the enemy aircraft to move to that position is smaller than the predetermined value C Is called the target position of the attack bullet (hereinafter referred to as the attack target position). The predetermined value C can be, for example, S / Ve, where S is half of the sum of the size of the own aircraft and the size of the enemy attacking bullet, and Ve is the velocity of the attacking bullet of the enemy aircraft. Also, as the size of the own aircraft, for example, the diameter of a circle inscribed in the shape of the own aircraft, and as the size of the enemy aircraft attack bullet, the diameter of a circle inscribed in the shape of the enemy aircraft attack bullet can be taken .

ある位置に自機が移動するのにかかる時間と、その位置に敵機が発射する攻撃弾が移動するのにかかる時間との差の絶対値がS/Veよりも小さい場合には、敵機がその位置に向けて攻撃弾を発射すると、その位置に移動する行動を選択した自機が、攻撃弾とその位置において衝突するのである。   If the absolute value of the difference between the time it takes for the aircraft to move to a certain position and the time it takes for the attacking bullet fired by the enemy aircraft to move to that position is smaller than S / Ve, When an attack bullet is fired at that position, the aircraft that selected the action to move to that position collides with the attack bullet at that position.

ここで、攻撃目標位置が自機の現在位置から近いほど、敵機が発射する攻撃弾によって減らすことができる自機の安全行動パターンの数は多いということができる。なぜなら、自機の移動パターンの探索木の根元の近くにある(浅い深さにある)節点を攻撃目標位置とすると、その節点から分岐する安全行動パターンのすべてをなくすことができるためである。   Here, it can be said that the closer the attack target position is to the current position of the own aircraft, the greater the number of safe action patterns of the own aircraft that can be reduced by the attack bullets fired by the enemy aircraft. This is because if a node near the root of the search tree of the movement pattern of the own device (at a shallow depth) is set as the attack target position, all of the safety action patterns branched from the node can be eliminated.

このような自機の現在位置から近い攻撃目標位置を見つけるために、以下に述べる第1実施形態では縦型探索を用いる。また、第2実施形態では、横型探索を用いる。これらの実施形態は一例であり、他の探索方法を用いても本発明を実施することができる。すなわち、探索の方法は、後述する縦型探索と横型探索に限定されない。   In order to find such an attack target position that is close to the current position of the aircraft, a vertical search is used in the first embodiment described below. In the second embodiment, horizontal search is used. These embodiments are merely examples, and the present invention can be implemented using other search methods. That is, the search method is not limited to the vertical search and the horizontal search described later.

縦型探索とは、子節点を優先して探索するものである。例えば、D=3、W=3の場合、図5に示すように、行動単位ごとの移動経路につけた番号の順番でそれぞれの経路を探索する手法である。以下に述べる第1実施形態では、衝突が起こった場合には、衝突が起こった箇所より後の経路を探索しない。例えば、※1(6の経路)において衝突が起こった場合には、7〜9の経路については探索しない。この場合には、6の経路を探索して衝突が発生した後に、10の経路を探索することになる。また、ひとつでも適切な攻撃目標位置が見つかると、その攻撃目標位置よりも、自機の現在位置から遠い位置については探索を行わない。例えば、図5に示すように、深さd=2の探索で、○(15の経路)において適切な攻撃目標位置が見つかった場合には、自機が、現在位置から○で示された攻撃目標位置に到達するまでの時間よりも、自機の到達時間が短い位置についてのみ適切な攻撃目標位置と成り得るかどうかを調べる。   A vertical search is a search that gives priority to child nodes. For example, in the case of D = 3 and W = 3, as shown in FIG. 5, each route is searched in the order of the numbers given to the movement routes for each action unit. In the first embodiment described below, when a collision occurs, the route after the location where the collision occurs is not searched. For example, when a collision occurs in * 1 (route 6), the routes 7-9 are not searched. In this case, after the route 6 is searched and a collision occurs, the route 10 is searched. If even one suitable attack target position is found, no search is performed for a position farther from the current position of the aircraft than the attack target position. For example, as shown in FIG. 5, when a suitable attack target position is found in a circle (15 routes) in a search with a depth d = 2, the own aircraft is attacked with a circle from the current position. It is examined whether or not an appropriate attack target position can be obtained only for a position where the arrival time of the own aircraft is shorter than the time required to reach the target position.

また、横型探索とは、ある節点から探索を開始して、その節点に接続している節点を全て調べた後、その調べた節点に接続している子節点を順番に調べて行く探索方法である。例えば、D=3、W=3の場合、図6に示すように、行動単位ごとの移動経路につけた番号の順番でそれぞれの経路を探索する手法である。以下に述べる第2実施形態では、衝突が起こった場合には、衝突が起こった箇所より後の経路を探索しない。例えば、※1(5の経路)において衝突が起こった場合には、16〜18の経路については探索しない。この場合には、15の経路を探索した後に、19の経路を探索する。また、ひとつでも適切な攻撃目標位置が見つかると、その攻撃目標位置よりも、自機の現在位置から遠い位置については探索を行わない。例えば、図6に示すように、深さd=2の探索で、○(7の経路)において適切な攻撃目標位置が見つかった場合には、自機が、現在位置から○で示された攻撃目標位置に到達するまでの時間よりも、自機の到達時間が短い位置についてのみ適切な攻撃目標位置と成り得るかどうかを調べる。   In addition, horizontal search is a search method in which a search is started from a certain node, all nodes connected to the node are examined, and then the child nodes connected to the examined node are examined in order. is there. For example, in the case of D = 3 and W = 3, as shown in FIG. 6, this is a method of searching each route in the order of the numbers given to the movement route for each action unit. In the second embodiment described below, when a collision occurs, the route after the location where the collision occurs is not searched. For example, when a collision occurs in * 1 (route 5), the routes 16 to 18 are not searched. In this case, after searching for 15 routes, 19 routes are searched. If even one suitable attack target position is found, no search is performed for a position farther from the current position of the aircraft than the attack target position. For example, as shown in FIG. 6, when a suitable attack target position is found in ○ (route 7) in a search with a depth d = 2, the own aircraft will attack from the current position indicated by ○. It is examined whether or not an appropriate attack target position can be obtained only for a position where the arrival time of the own aircraft is shorter than the time required to reach the target position.

[実施形態]
第1実施形態(縦型探索)
図1、2を参照して、本発明の第1実施形態によるシューティングゲーム処理方法を実施するためのシューティングゲーム処理装置1000を説明する。図1は、シューティングゲーム処理装置1000の機能構成例を示す図である。図2は、シューティングゲーム処理装置1000の処理例を示す図である。
シューティングゲーム処理装置1000は、例えば、自機移動パターン生成部10、攻撃弾位置推定部20、衝突判定部30、攻撃目標位置判定部40、攻撃目標位置バッファ50、自機移動パターンバッファ51、敵機攻撃弾状態バッファ52、攻撃弾発射部60から構成される。
自機移動パターン生成部10は、例えば、初期化部101、制御部102、バッファ103、位置更新部104、記憶部105から構成される。
攻撃弾位置推定部20は、例えば、記憶部201、位置取得部202から構成される。
攻撃目標位置判定部40は、例えば、到達時間差計算部401を含む。
[Embodiment]
First embodiment (vertical search)
A shooting game processing apparatus 1000 for carrying out the shooting game processing method according to the first embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a diagram illustrating a functional configuration example of the shooting game processing apparatus 1000. FIG. 2 is a diagram illustrating a processing example of the shooting game processing apparatus 1000.
The shooting game processing apparatus 1000 includes, for example, the own device movement pattern generation unit 10, the attack bullet position estimation unit 20, the collision determination unit 30, the attack target position determination unit 40, the attack target position buffer 50, the own device movement pattern buffer 51, the enemy It comprises a machine attack bullet state buffer 52 and an attack bullet launcher 60.
The own device movement pattern generation unit 10 includes, for example, an initialization unit 101, a control unit 102, a buffer 103, a position update unit 104, and a storage unit 105.
The attack bullet position estimation unit 20 includes a storage unit 201 and a position acquisition unit 202, for example.
The attack target position determination unit 40 includes, for example, an arrival time difference calculation unit 401.

<準備>
自機の行動の回数(探索の深さ)D、自機の取り得る行動wの種類の数W、各行動wを取ったときの自機の速度(Vxw,Vyw)、行動単位時間Tは予め設定され、自機移動パターン生成部の記憶部105に格納されているものとする。
例えば、D=5、W=9に設定することができる。また、各行動wを取ったときの自機の速度(Vxw,Vyw)としては、例えば、W=9の場合、(Vx1,Vy1)=(0,1)、(Vx2,Vy2)=(1,1)、(Vx3,Vy3)=(1,0)、(Vx4,Vy4)=(1,−1)、(Vx5,Vy5)=(0,−1)、(Vx6,Vy6)=(−1,−1)、(Vx7,Vy7)=(−1,0)、(Vx8,Vy8)=(−1,1)、(Vx9,Vy9)=(0,0)とすることができる。
<Preparation>
Number of actions of own machine (depth of search) D, number W of kinds of actions w that can be taken by own machine, speed (Vxw, Vyw) of own machine when taking each action w, and unit time T of action It is assumed that it is set in advance and stored in the storage unit 105 of the own device movement pattern generation unit.
For example, D = 5 and W = 9 can be set. Further, as the speed (Vxw, Vyw) of the own device when each action w is taken, for example, when W = 9, (Vx1, Vy1) = (0, 1), (Vx2, Vy2) = (1 , 1), (Vx3, Vy3) = (1, 0), (Vx4, Vy4) = (1, −1), (Vx5, Vy5) = (0, −1), (Vx6, Vy6) = (− 1, -1), (Vx7, Vy7) = (-1, 0), (Vx8, Vy8) = (-1, 1), (Vx9, Vy9) = (0, 0).

また、自機の行動を表現する行動単位の長さは、自機の大きさが0でないとした場合、自機が移動によって掃く領域がカバーできない領域が各深さの移動において発生しないようにすることが、適切な攻撃目標位置を見つけるうえにおいて重要である。攻撃弾自機が移動によって掃く領域がカバーできない領域が存在すれば、求まった攻撃目標位置は、実際に自機が移動することができる領域の一部については考慮していないことになるからである。このため、より適切な攻撃目標位置を見つけるためには、例えば、自機の形状に内接する円の直径を自機の速度で割った値を、上記行動単位時間Tとして設定する。   In addition, when the size of the action unit expressing the action of the own machine is assumed that the size of the own machine is not 0, an area that cannot be covered by the area where the own machine sweeps by movement does not occur in each depth of movement. It is important to find an appropriate attack target position. If there is an area that cannot be covered by the area where the attack bullets are swept by movement, the determined attack target position does not take into account some of the areas where the aircraft can actually move. is there. For this reason, in order to find a more appropriate attack target position, for example, a value obtained by dividing the diameter of a circle inscribed in the shape of the own device by the speed of the own device is set as the action unit time T.

敵機の攻撃弾の速度(Vbikx(t),Vbiky(t))は、予め設定され攻撃弾位置推定部20の記憶部201に格納されているものとする。
以下では、tを自機が行動を開始してからの経過時間、時刻tでの自機の位置を(Xs(t),Ys(t))、敵機iの発射したk番目の攻撃弾の時刻tでの位置を(Xbik(t),Ybik(t))とする。ここで、tは、処理単位時間τごとに離散的な時間を取るものとする。
Assume that the velocity (Vbikx (t), Vbiky (t)) of the attacking bullet of the enemy aircraft is set in advance and stored in the storage unit 201 of the attacking bullet position estimation unit 20.
In the following, t is the elapsed time from the start of the action of the ship, the position of the ship at time t is (Xs (t), Ys (t)), and the kth attack bullet launched by the enemy aircraft i. (Xbik (t), Ybik (t)) at time t. Here, t takes a discrete time for each processing unit time τ.

<ステップS1>
自機移動パターン生成部10の初期化部101は、t=0,d=1、Db=D,tb=D×Tとして、これをバッファ103に格納する。また、初期化部101は、時刻tにおける自機の位置(Xs(t),Ys(t))を自機の現在位置に設定して、これを自機移動パターンバッファ51に格納する。
<Step S1>
The initialization unit 101 of the own device movement pattern generation unit 10 stores t = 0, d = 1, Db = D, tb = D × T in the buffer 103. Further, the initialization unit 101 sets the position (Xs (t), Ys (t)) of the own apparatus at time t to the current position of the own apparatus, and stores this in the own movement pattern buffer 51.

<ステップS2>
自機移動パターン生成部10の制御部102は、w(d)=1とする。ここで、w(d)は、深さdにおける自機の移動速度番号wである。
<Step S2>
The control unit 102 of the own device movement pattern generation unit 10 sets w (d) = 1. Here, w (d) is the moving speed number w of the own device at the depth d.

<ステップS3>
自機移動パターン生成部10の制御部102は、w(d)と(Xs(t),Ys(t))の値を、それぞれ自機移動パターンバッファ51に格納する。また、自機移動パターン生成部10の制御部102は、時刻tにおける攻撃弾の位置(Xbik(t),Ybik(t))を、敵機攻撃弾状態バッファ52に格納する。
<Step S3>
The control unit 102 of the own device movement pattern generation unit 10 stores the values of w (d) and (Xs (t), Ys (t)) in the own device movement pattern buffer 51, respectively. Further, the control unit 102 of the own aircraft movement pattern generation unit 10 stores the attack bullet position (Xbik (t), Ybik (t)) at the time t in the enemy aircraft attack bullet state buffer 52.

<ステップS4>
自機移動パターン生成部10の制御部102は、バッファ103からtを読み出し、tをインクリメント幅τだけインクリメントする。インクリメントされたtは、バッファ103に格納される。tのインクリメント幅τは、行動単位時間Tより小さい値、好ましくはTを複数等分する値であれば、どのような値でも良い。例えば、Tを0.3秒〜1秒としたとき、このTを10等分する時間間隔である0.03秒〜0.1秒をτに設定することができる。
<Step S4>
The control unit 102 of the own movement pattern generation unit 10 reads t from the buffer 103 and increments t by the increment width τ. The incremented t is stored in the buffer 103. The increment width τ of t may be any value as long as it is a value smaller than the action unit time T, preferably a value that equally divides T. For example, when T is set to 0.3 seconds to 1 second, 0.03 seconds to 0.1 seconds, which is a time interval for dividing T into 10 parts, can be set as τ.

また、自機移動パターン生成部10の位置更新部104は、自機の移動速度(Vx(w(d)),Vy(w(d))でtのインクリメント幅τだけ移動した後の自機の位置を計算する。具体的には、位置更新部104は、(τ×Vx(w(d)),τ×Vy(w(d)))を計算して、位置の変位量を求め、これに(Xs(t−τ),Ys(t−τ))を加算することにより、自機の位置を更新する。インクリメント幅τでインクリメントした後の自機の位置、すなわち、更新後の自機の位置(Xs(t),Ys(t))は、衝突判定部30に出力される。   Further, the position update unit 104 of the own device movement pattern generation unit 10 moves the own device after moving by the increment width τ of t at the moving speed (Vx (w (d)), Vy (w (d)) of the own device. Specifically, the position updating unit 104 calculates (τ × Vx (w (d)), τ × Vy (w (d))) to obtain a displacement amount of the position, By adding (Xs (t−τ), Ys (t−τ)) to this, the position of the own apparatus is updated, that is, the position of the own apparatus after being incremented by the increment width τ, that is, the updated position. The machine position (Xs (t), Ys (t)) is output to the collision determination unit 30.

<ステップS5>
攻撃弾位置推定部20は、攻撃弾の位置(Xbik(t),Ybik(t))を更新する。すなわち、τ時間経過後の攻撃弾の位置(Xbik(t),Ybik(t))を計算する。
具体的には、記憶部201に記憶された攻撃弾の速度(Vbikx(t),Vbiky(t))を読み出し、これをτ倍したものを、位置取得部202が取得した更新前の攻撃弾の位置(Xbik(t−τ),Ybik(t−τ))に加算することにより、更新後の攻撃弾の位置(Xbik(t),Ybik(t))を求める。
更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、記憶部201に記憶される。また、更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、衝突判定部30と自機移動パターン生成部10に出力される。
<Step S5>
The attack bullet position estimation unit 20 updates the position of the attack bullet (Xbik (t), Ybik (t)). That is, the attack bullet position (Xbik (t), Ybik (t)) after the elapse of τ time is calculated.
Specifically, the velocity (Vbikx (t), Vbiky (t)) of the attack bullet stored in the storage unit 201 is read, and the attack bullet before update acquired by the position acquisition unit 202 is multiplied by τ. Is added to the position (Xbik (t−τ), Ybik (t−τ)) to obtain the updated position (Xbik (t), Ybik (t)) of the attacking bullet.
The updated attack bullet positions (Xbik (t), Ybik (t)) are stored in the storage unit 201. The updated attack bullet positions (Xbik (t), Ybik (t)) are output to the collision determination unit 30 and the own movement pattern generation unit 10.

<ステップS6>
衝突判定部30は、自機と攻撃弾が衝突したかどうかを判定する。衝突したかどうかは、予め設定され、図示していない衝突判定部30内の記憶部に記憶された自機の形状、攻撃弾の形状と、自機移動パターン生成部10から出力された更新後の自機の位置(Xs(t),Ys(t))、攻撃弾位置推定部20から出力された更新後の攻撃弾の位置(Xbik(t),Ybik(t))とから判断される。
例えば、更新後の位置に置かれた自機の形状と更新後の位置に置かれた敵機の攻撃弾の形状が重なった場合には、自機と攻撃弾が衝突したと判定することができる。
衝突がなかったと判定された場合には、衝突がなかった旨の信号が、自機移動パターン生成部10に出力される。その後、ステップS7の処理を行う。
衝突があったと判定された場合には、衝突があった旨の信号が、自機移動パターン生成部10に出力される。その後、ステップS14の処理を行う。
<Step S6>
The collision determination unit 30 determines whether or not the own aircraft and the attack bullet have collided. Whether or not the vehicle has collided is set in advance and is stored in a storage unit (not shown) in the storage unit 30, the shape of the own aircraft, the shape of the attack bullet, and the updated output output from the own device movement pattern generation unit 10 Is determined from the position (Xs (t), Ys (t)) of the own aircraft and the position (Xbik (t), Ybik (t)) of the updated attack bullet output from the attack bullet position estimation unit 20 .
For example, if the shape of the own aircraft placed at the updated position and the shape of the attack bullet of the enemy aircraft placed at the updated position overlap, it can be determined that the own aircraft and the attack bullet have collided it can.
When it is determined that there is no collision, a signal indicating that there is no collision is output to the own movement pattern generation unit 10. Then, the process of step S7 is performed.
If it is determined that there is a collision, a signal indicating that there is a collision is output to the own-movement pattern generation unit 10. Then, the process of step S14 is performed.

<ステップS7>
衝突がなかった旨の信号を受け取った自機移動パターン生成部10の制御部102は、バッファ103から読み出したtとtbの大小関係を比較する。
t<tbであれば、ステップS8の処理を行う。t≧tbであれば、ステップS10の処理を行う。
<Step S7>
The control unit 102 of the own movement pattern generation unit 10 that has received the signal that there is no collision compares the magnitude relationship between t and tb read from the buffer 103.
If t <tb, the process of step S8 is performed. If t ≧ tb, the process of step S10 is performed.

<ステップS8>
攻撃目標位置判定部40の到達時間差計算部41は、敵機の現在位置(X,Y)に位置する敵機が、(Xs(t),Ys(t))を目標位置として攻撃弾を発射したときの到達所要時間Tnを計算する。そして、tとTnの差の絶対値を計算する。
攻撃目標位置判定部40は、上記到達所要時間Tnとtの差の絶対値が、記憶部105から読み出した所定の値Cよりも小さいかどうかを判定する。所定の値Cは、例えば、自機の大きさと敵機攻撃弾の大きさの和の半分をS、敵機の攻撃弾の速度をVeとすると、S/Veとすることができる。また、自機の大きさとしては、例えば、自機の形状に内接する円の直径、敵機攻撃弾の大きさとしては、敵機攻撃弾の形状に内接する円の直径を取ることができる。
<Step S8>
The arrival time difference calculation unit 41 of the attack target position determination unit 40 causes the enemy aircraft located at the current position (X, Y) of the enemy aircraft to launch an attack bullet with (Xs (t), Ys (t)) as the target position. The required arrival time Tn is calculated. Then, the absolute value of the difference between t and Tn is calculated.
The attack target position determination unit 40 determines whether the absolute value of the difference between the required arrival times Tn and t is smaller than a predetermined value C read from the storage unit 105. The predetermined value C can be, for example, S / Ve, where S is half of the sum of the size of the own aircraft and the size of the enemy attacking bullet, and Ve is the velocity of the attacking bullet of the enemy aircraft. Also, as the size of the own aircraft, for example, the diameter of a circle inscribed in the shape of the own aircraft, and as the size of the enemy aircraft attack bullet, the diameter of a circle inscribed in the shape of the enemy aircraft attack bullet can be taken .

S/Ve>|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることができる。敵機が(Xs(t),Ys(t))を目標位置として攻撃弾を発射すれば、自機を破壊することができる可能性があるからである。この場合、ステップS9の処理を行う。
S/Ve<|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることはできない。この場合、ステップS10の処理を行う。
If S / Ve> | t−Tn |, (Xs (t), Ys (t)) can be set as the attack target position. This is because if the enemy aircraft fires an attack bullet with (Xs (t), Ys (t)) as the target position, it may be possible to destroy the aircraft. In this case, the process of step S9 is performed.
If S / Ve <| t−Tn |, (Xs (t), Ys (t)) cannot be set as the attack target position. In this case, the process of step S10 is performed.

<ステップS9>
S/Ve>|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることができるため、攻撃目標位置判定部40は、(Xs(t),Ys(t))を、攻撃目標位置(Xdes,Ydes)として攻撃目標位置バッファ50に格納する。また、Db=dとして新たにDbを設定し、これをバッファ103に格納する。また、tb=tとして新たにtbを設定し、これをバッファ103に格納する。
<Step S9>
If S / Ve> | t−Tn |, since (Xs (t), Ys (t)) can be set as the attack target position, the attack target position determination unit 40 determines (Xs (t), Ys). (T)) is stored in the attack target position buffer 50 as the attack target position (Xdes, Ydes). Further, Db is newly set as Db = d, and this is stored in the buffer 103. Further, tb is newly set as tb = t, and this is stored in the buffer 103.

<ステップS10>
自機移動パターン生成部10の制御部102は、ステップS3のときから、行動単位時間Tが経過したかどうかを判定する。すなわち、バッファから読み出したtがdTよりも大きいかどうか、つまり、t≧dTかどうかを判定する。
t<dTであれば、ステップS4の処理を行う。すなわち、tがステップS3の時から行動単位時間Tを経過するまで、ステップS4〜S10を繰り返す。
t≧dTであれば、ステップS11の処理を行う。
<Step S10>
The control unit 102 of the own device movement pattern generation unit 10 determines whether or not the behavior unit time T has elapsed since step S3. That is, it is determined whether t read from the buffer is larger than dT, that is, whether t ≧ dT.
If t <dT, the process of step S4 is performed. That is, steps S4 to S10 are repeated until the action unit time T elapses from when t is step S3.
If t ≧ dT, the process of step S11 is performed.

<ステップS11>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したdを1だけインクリメントする。インクリメントされたdは、バッファ103に格納される。
<Step S11>
The control unit 102 of the own device movement pattern generation unit 10 increments d read from the buffer 103 by one. The incremented d is stored in the buffer 103.

<ステップS12>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したdが、バッファ103から読み出したDbより大きいかどうかを判定する。すなわち、Db<dかどうかを判定する。
Db≧dであると判定された場合には、制御部102は、ステップS2の処理を行う。
Db<dであると判定された場合には、制御部102は、ステップS13の処理を行う。
<Step S12>
The control unit 102 of the own device movement pattern generation unit 10 determines whether d read from the buffer 103 is larger than Db read from the buffer 103. That is, it is determined whether Db <d.
When it is determined that Db ≧ d, the control unit 102 performs the process of step S2.
When it is determined that Db <d, the control unit 102 performs the process of step S13.

<ステップS13>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したdを、1だけデクリメントする。デクリメントされたdは、バッファ103に格納される。
<Step S13>
The control unit 102 of the own device movement pattern generation unit 10 decrements d read from the buffer 103 by one. The decremented d is stored in the buffer 103.

<ステップS14>
自機移動パターン生成部10の制御部102は、バッファ103から読み出したtを(d−1)Tに設定する。(d−1)Tに設定されたtは、バッファ103に格納される。また、自機移動パターンバッファ51に格納されたw(d)を読み出し、1だけインクリメントする。インクリメントされたw(d)は、自機移動パターンバッファ51に格納される。
<Step S14>
The control unit 102 of the own device movement pattern generation unit 10 sets t read from the buffer 103 to (d−1) T. (D-1) t set in T is stored in the buffer 103. Also, w (d) stored in own device movement pattern buffer 51 is read and incremented by one. The incremented w (d) is stored in the own movement pattern buffer 51.

<ステップS15>
自機移動パターン生成部10の制御部102は、記憶部105から読み出したWと、自機移動パターンバッファ51から読み出したw(d)の大小関係を比較する。
W<w(d)であれば、自機移動パターン生成部10の制御部102は、ステップS17の処理を行う。W≧w(d)であれば、自機移動パターン生成部10の制御部102は、ステップS16の処理を行う。
<Step S15>
The control unit 102 of the own device movement pattern generation unit 10 compares the magnitude relationship between W read from the storage unit 105 and w (d) read from the own device movement pattern buffer 51.
If W <w (d), the control unit 102 of the own device movement pattern generation unit 10 performs the process of step S17. If W ≧ w (d), the control unit 102 of the own device movement pattern generation unit 10 performs the process of step S16.

<ステップS16>
自機移動パターン生成部10の制御部102は、敵機攻撃弾状態バッファ52から、時刻tにおける攻撃弾の位置(Xbik(t),Ybik(t))を読み出す。その後、ステップS3の処理の処理を行う。
<Step S16>
The control unit 102 of the own-device movement pattern generation unit 10 reads the position of the attack bullet (Xbik (t), Ybik (t)) at time t from the enemy aircraft attack bullet state buffer 52. Thereafter, the process of step S3 is performed.

<ステップS17>
ステップS15においてW<w(d)であると判定された場合には、自機移動パターン生成部10の制御部102は、d=1か否かを判定する。
d≠1と判定された場合には、ステップS14の処理を行う。
d=1と判定された場合には、ステップS18の処理を行う。
<Step S17>
When it is determined in step S15 that W <w (d), the control unit 102 of the own movement pattern generation unit 10 determines whether d = 1.
If it is determined that d ≠ 1, the process of step S14 is performed.
If it is determined that d = 1, the process of step S18 is performed.

<ステップS18>
ステップS17において、d=1と判定された場合には、攻撃弾の目標位置の探索を終了する。そして、攻撃弾発射部60が、攻撃目標位置バッファ50から読み出した攻撃目標位置(Xdes,Ydes)に向けて、敵機に攻撃弾を発射させる。
<Step S18>
If it is determined in step S17 that d = 1, the search for the target position of the attack bullet is terminated. Then, the attack bullet launcher 60 causes the enemy aircraft to launch an attack bullet toward the attack target position (Xdes, Ydes) read from the attack target position buffer 50.

本実施形態による攻撃目標位置の探索では、一度攻撃目標位置が見つかった後は、その位置よりも浅く(Db<d,ステップS12)、かつ、その位置よりも自機から近い位置についてのみ(t<tb,ステップS7)、攻撃弾の目標位置となり得るかどうかを探索している。そして、新たな攻撃弾の目標位置が見つかった場合には(ステップS8)、その新たな攻撃弾の目標位置で、攻撃目標位置バッファ50が更新される(ステップS9)。このため、ステップS17においてd=1と判定され、攻撃弾の目標位置の探索を終えたときに、攻撃目標位置バッファ50に格納されている攻撃目標位置(Xdes,Ydes)が、自機の現在位置から最も近い攻撃目標位置となるのである。
以上が、第1実施形態によるシューティングゲーム処理方法、その装置の概要である。
In the search for the attack target position according to the present embodiment, once the attack target position is found, only the position that is shallower than the position (Db <d, step S12) and closer to the own aircraft than the position (t <Tb, step S7), searching whether it can be the target position of the attack bullet. When a new target position of the attack bullet is found (step S8), the attack target position buffer 50 is updated with the new target position of the attack bullet (step S9). For this reason, when it is determined that d = 1 in step S17 and the search for the target position of the attack bullet is finished, the attack target position (Xdes, Ydes) stored in the attack target position buffer 50 is the current position of the aircraft. This is the closest attack target position from the position.
The above is the outline of the shooting game processing method and apparatus according to the first embodiment.

第2実施形態(横型探索)
図7、8を参照して、本発明の第2実施形態によるシューティングゲーム処理方法を実施するためのシューティングゲーム処理装置1001を説明する。図7は、シューティングゲーム処理装置1001の機能構成例を示す図である。図8は、シューティングゲーム処理装置1001の処理例を示す図である。
Second embodiment (horizontal search)
A shooting game processing apparatus 1001 for carrying out a shooting game processing method according to the second embodiment of the present invention will be described with reference to FIGS. FIG. 7 is a diagram illustrating a functional configuration example of the shooting game processing apparatus 1001. FIG. 8 is a diagram illustrating a processing example of the shooting game processing apparatus 1001.

シューティングゲーム処理装置1001は、自機移動パターン生成部11が順列作成部106と順列獲得部107を有する点、自機移動パターン生成部11の制御部112の動作が、シューティングゲーム処理装置1000の自機移動パターン生成部10の制御部102の動作と異なる点、順列データバッファ53を有する点で、図1に示したシューティングゲーム処理装置1000と異なる。シューティングゲーム処理装置1001の他の機能構成は、シューティングゲーム処理装置1000の機能構成と同じである。   The shooting game processing device 1001 is different from the shooting game processing device 1000 in that the own device movement pattern generation unit 11 includes a permutation creation unit 106 and a permutation acquisition unit 107, and the operation of the control unit 112 of the own device movement pattern generation unit 11 It differs from the shooting game processing apparatus 1000 shown in FIG. 1 in that it differs from the operation of the control unit 102 of the machine movement pattern generation unit 10 and has a permutation data buffer 53. Other functional configurations of the shooting game processing device 1001 are the same as the functional configurations of the shooting game processing device 1000.

<準備>
第1実施形態と同様に、自機の行動の回数(探索の深さ)D、自機の取り得る行動wの種類の数W、各行動wを取ったときの自機の速度(Vxw,Vyw)、行動単位時間Tは予め設定され、自機移動パターン生成部の記憶部105に格納されているものとする。
また、敵機の攻撃弾の速度(Vbikx(t),Vbiky(t))は、予め設定され攻撃弾位置推定部20の記憶部201に格納されているものとする。
<Preparation>
Similar to the first embodiment, the number of actions (depth of search) D of the own machine, the number W of the types of actions w that the own machine can take, and the speed (Vxw, Vyw), the action unit time T is set in advance and is stored in the storage unit 105 of the own device movement pattern generation unit.
Further, it is assumed that the velocity (Vbikx (t), Vbiky (t)) of the attacking bullet of the enemy aircraft is preset and stored in the storage unit 201 of the attacking bullet position estimation unit 20.

以下では、tを自機が行動を開始してからの経過時間、時刻tでの自機の位置を(Xs(t),Ys(t))、敵機iの発射したk番目の攻撃弾の時刻tでの位置を(Xbik(t),Ybik(t))、dを現在評価している自機行動順列の要素の総数、jを現時点で評価している自機行動順列番号、deを現時点で評価している自機行動順列の要素番号、w(d,1,j),…,w(d,de,j),…,w(d,d,j),j番目の自機行動順列とし、各w(d,de,j)には自機の移動速度番号が定められているものとする。また、tbを攻撃目標位置が見つかった時刻、Dbを攻撃目標位置が見つかった場合の探索の深さとする。ここで、tは、処理単位時間τごとに離散的な時間を取るものとする。   In the following, t is the elapsed time from the start of the action of the ship, the position of the ship at time t is (Xs (t), Ys (t)), and the kth attack bullet launched by the enemy aircraft i. Is the position at time t (Xbik (t), Ybik (t)), d is the total number of elements of the own apparatus action permutation currently evaluated, j is the own apparatus action permutation number currently evaluated, de , W (d, 1, j), ..., w (d, de, j), ..., w (d, d, j), jth self It is assumed that the machine action permutation is set, and each w (d, de, j) has its own moving speed number. Also, tb is the time when the attack target position is found, and Db is the search depth when the attack target position is found. Here, t takes a discrete time for each processing unit time τ.

<ステップS1>
自機移動パターン生成部11の初期化部101は、d=1,k=1,Db=D,tb=D×Tとして、これをバッファ103に格納する。また、初期化部101は、時刻tにおける自機の位置(Xs(t),Ys(t))を自機の現在位置に設定して、これを自機移動パターンバッファ51に格納する。
<Step S1>
The initialization unit 101 of the own device movement pattern generation unit 11 stores d = 1, k = 1, Db = D, and tb = D × T in the buffer 103. Further, the initialization unit 101 sets the position (Xs (t), Ys (t)) of the own apparatus at time t to the current position of the own apparatus, and stores this in the own movement pattern buffer 51.

<ステップS2>
自機移動パターン生成部11の順列作成部106は、すべての、jとdeについて、自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作成し、これを順列データバッファ53に格納する。また、j=1としてバッファ103に格納する。上記自機行動順列は、自機が取り得る移動速度番号の順列である。
<Step S2>
The permutation creation unit 106 of the own device movement pattern generation unit 11 performs the own device action permutation w (d, 1, j),..., W (d, de, j),. d, d, j) are created and stored in the permutation data buffer 53. Further, j = 1 is stored in the buffer 103. The self-device action permutation is a permutation of movement speed numbers that the self-device can take.

例えば、d=1の場合、順列作成部106は、すべてのjとdeについて、以下のような9(=9の1乗)個の自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作ることができる。
j=1:{w(1,1,1)=1}
j=2:{w(1,1,2)=2}

j=8:{w(1,1,2)=8}
j=9:{w(1,1,9)=9}
For example, in the case of d = 1, the permutation creation unit 106, for all j and de, has the following 9 (= 9 to the 1st power) number of own action permutations w (d, 1, j),. w (d, de, j),..., w (d, d, j) can be created.
j = 1: {w (1, 1, 1) = 1}
j = 2: {w (1, 1, 2) = 2}
...
j = 8: {w (1, 1, 2) = 8}
j = 9: {w (1,1,9) = 9}

また、例えば、d=2の場合、すべてのjとdeについて、以下のような81(=9の2乗)個の自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作ることができる。
j=1:{w(2,1,1)=1,w(2,2,1)=1}
j=2:{w(2,1,2)=1,w(2,2,2)=2}

j=80:{w(2,1,80)=9,w(2,2,80)=8}
j=81:{w(2,1,81)=9,w(2,2,81)=9}
Further, for example, when d = 2, for all j and de, 81 (= 9 to the second power) permutation w (d, 1, j),..., W (d, de, j),..., w (d, d, j) can be created.
j = 1: {w (2, 1, 1) = 1, w (2, 2, 1) = 1}
j = 2: {w (2, 1, 2) = 1, w (2, 2, 2) = 2}
...
j = 80: {w (2,1,80) = 9, w (2,2,80) = 8}
j = 81: {w (2,1,81) = 9, w (2,2,81) = 9}

さらに、例えば、d=3の場合、すべてのdとdeとjについて、以下のような729(=9の3乗)個の自機行動順列w(d,1,j),…,w(d,de,j),…,w(d,d,j)を作ることができる。
j=1:{w(3,1,1)=1,w(3,2,1)=1,w(3,3,1)=1}
j=2:{w(3,1,2)=1,w(3,2,2)=1,w(3,3,2)=2}

j=728:{w(3,1,728)=9,w(3,2,728)=9,w(3,3,728)=8}
j=729:{w(3,1,729)=9,w(3,2,729)=9,w(3,3,729)=9}
Further, for example, in the case of d = 3, for all d, de, and j, 729 (= 9 to the third power) self-action permutations w (d, 1, j),. d, de, j), ..., w (d, d, j) can be created.
j = 1: {w (3, 1, 1) = 1, w (3, 2, 1) = 1, w (3, 3, 1) = 1}
j = 2: {w (3, 1, 2) = 1, w (3, 2, 2) = 1, w (3, 3, 2) = 2}
...
j = 728: {w (3,1,728) = 9, w (3,2,728) = 9, w (3,3,728) = 8}
j = 729: {w (3,1,729) = 9, w (3,2,729) = 9, w (3,3,729) = 9}

<ステップS3>
自機移動パターン生成部11の制御部112は、de=1,t=0としてバッファ103に格納する。また、自機が選択すべき移動速度番号をw(d,de,j)とする。
<Step S3>
The control unit 112 of the own device movement pattern generation unit 11 stores de = 1 and t = 0 in the buffer 103. The moving speed number to be selected by the own device is assumed to be w (d, de, j).

<ステップS4>
自機移動パターン生成部11の制御部112は、バッファ103から読み出したdがd=1かどうかを判定する。d=1であれば、ステップS5の処理を行う。d=1でなければ、ステップS18の処理を行う。
<Step S4>
The control unit 112 of the own device movement pattern generation unit 11 determines whether d read from the buffer 103 is d = 1. If d = 1, the process of step S5 is performed. If d = 1 is not satisfied, the process of step S18 is performed.

<ステップS5>
自機移動パターン生成部11の制御部112は、バッファ103からtを読み出し、tをインクリメント幅τだけインクリメントする。インクリメントされたtは、バッファ103に格納される。tのインクリメント幅τは、行動単位時間Tより小さい値、好ましくはTを複数等分する値であれば、どのような値でも良い。例えば、Tを0.3秒〜1秒としたとき、このTを10等分する時間間隔である0.03秒〜0.1秒をτに設定することができる。
<Step S5>
The control unit 112 of the own device movement pattern generation unit 11 reads t from the buffer 103 and increments t by the increment width τ. The incremented t is stored in the buffer 103. The increment width τ of t may be any value as long as it is a value smaller than the action unit time T, preferably a value that equally divides T. For example, when T is set to 0.3 seconds to 1 second, 0.03 seconds to 0.1 seconds, which is a time interval for dividing T into 10 parts, can be set as τ.

また、自機移動パターン生成部11の位置更新部104は、自機の移動速度(Vx(w(d,de,j)),Vy(w(d,de,j))でtのインクリメント幅τだけ移動した後の自機の位置を計算する。具体的には、位置更新部104は、(τ×Vx(w(d,de,j)),τ×Vy(w(d,de,j)))を計算して、位置の変位量を求め、これに(Xs(t−τ),Ys(t−τ))を加算することにより、自機の位置を更新する。インクリメント幅τでインクリメントした後の自機の位置、すなわち、更新後の自機の位置(Xs(t),Ys(t))は、衝突判定部30に出力される。   In addition, the position update unit 104 of the own device movement pattern generation unit 11 uses the moving speed (Vx (w (d, de, j)), Vy (w (d, de, j)) of the own device and the increment width of t. Specifically, the position update unit 104 calculates (τ × Vx (w (d, de, j)), τ × Vy (w (d, de, j))) is calculated to determine the displacement amount of the position, and (Xs (t−τ), Ys (t−τ)) is added to this to update the position of the own device. The position of the own machine after being incremented in step 1, that is, the updated position of the own machine (Xs (t), Ys (t)) is output to the collision determination unit 30.

<ステップS6>
攻撃弾位置推定部20は、攻撃弾の位置(Xbik(t),Ybik(t))を更新する。すなわち、τ時間経過後の攻撃弾の位置(Xbik(t),Ybik(t))を計算する。
具体的には、記憶部201に記憶された攻撃弾の速度(Vbikx(t),Vbiky(t))を読み出し、これをτ倍したものを、位置取得部202が取得した更新前の攻撃弾の位置(Xbik(t−τ),Ybik(t−τ))に加算することにより、更新後の攻撃弾の位置(Xbik(t),Ybik(t))を求める。
更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、記憶部201に記憶される。また、更新後の攻撃弾の位置(Xbik(t),Ybik(t))は、衝突判定部30と自機移動パターン生成部11に出力される。
<Step S6>
The attack bullet position estimation unit 20 updates the position of the attack bullet (Xbik (t), Ybik (t)). That is, the attack bullet position (Xbik (t), Ybik (t)) after the elapse of τ time is calculated.
Specifically, the velocity (Vbikx (t), Vbiky (t)) of the attack bullet stored in the storage unit 201 is read, and the attack bullet before update acquired by the position acquisition unit 202 is multiplied by τ. Is added to the position (Xbik (t−τ), Ybik (t−τ)) to obtain the updated position (Xbik (t), Ybik (t)) of the attacking bullet.
The updated attack bullet positions (Xbik (t), Ybik (t)) are stored in the storage unit 201. The updated attack bullet positions (Xbik (t), Ybik (t)) are output to the collision determination unit 30 and the own movement pattern generation unit 11.

<ステップS7>
衝突判定部30は、自機と攻撃弾が衝突したかどうかを判定する。衝突したかどうかは、予め設定され、図示していない衝突判定部30内の記憶部に記憶された自機の形状、攻撃弾の形状と、自機移動パターン生成部11から出力された更新後の自機の位置(Xs(t),Ys(t))、攻撃弾位置推定部20から出力された更新後の攻撃弾の位置(Xbik(t),Ybik(t))とから判断される。
例えば、更新後の位置に置かれた自機の形状と更新後の位置に置かれた敵機の攻撃弾の形状が重なった場合には、自機と攻撃弾が衝突したと判定することができる。
<Step S7>
The collision determination unit 30 determines whether or not the own aircraft and the attack bullet have collided. Whether or not the vehicle has collided is set in advance and is stored in a storage unit (not shown) in the storage unit 30, the shape of the own aircraft, the shape of the attack bullet, and the updated output output from the own device movement pattern generation unit 11 Is determined from the position (Xs (t), Ys (t)) of the own aircraft and the position (Xbik (t), Ybik (t)) of the updated attack bullet output from the attack bullet position estimation unit 20 .
For example, if the shape of the own aircraft placed at the updated position and the shape of the attack bullet of the enemy aircraft placed at the updated position overlap, it can be determined that the own aircraft and the attack bullet have collided it can.

衝突がなかったと判定された場合には、衝突がなかった旨の信号が、自機移動パターン生成部11に出力される。その後、図9に示すステップS8の処理を行う。
衝突があったと判定された場合には、衝突があった旨の信号が、自機移動パターン生成部11に出力される。その後、ステップS17の処理を行う。
When it is determined that there is no collision, a signal indicating that there is no collision is output to the own movement pattern generation unit 11. Then, the process of step S8 shown in FIG. 9 is performed.
If it is determined that there has been a collision, a signal indicating that there has been a collision is output to the own movement pattern generation unit 11. Then, the process of step S17 is performed.

<ステップS8>
衝突がなかった旨の信号を受け取った自機移動パターン生成部11の制御部112は、バッファ103から読み出したtとtbの大小関係を比較する。
t<tbであれば、ステップS9の処理を行う。t≧tbであれば、ステップS11の処理を行う。
<Step S8>
The control unit 112 of the own movement pattern generation unit 11 that has received the signal that there is no collision compares the magnitude relationship between t and tb read from the buffer 103.
If t <tb, the process of step S9 is performed. If t ≧ tb, the process of step S11 is performed.

<ステップS9>
攻撃目標位置判定部40の到達時間差計算部401は、敵機の現在位置(X,Y)に位置する敵機が、(Xs(t),Ys(t))を目標位置として攻撃弾を発射したときの到達所要時間Tnを計算する。そして、tとTnの差の絶対値を計算する。
攻撃目標位置判定部40は、上記到達所要時間Tnとtの差の絶対値が、記憶部105から読み出した所定の値Cよりも小さいかどうかを判定する。所定の値Cは、例えば、自機の大きさと敵機攻撃弾の大きさの和の半分をS、敵機の攻撃弾の速度をVeとすると、S/Veとすることができる。
<Step S9>
The arrival time difference calculation unit 401 of the attack target position determination unit 40 causes the enemy aircraft located at the current position (X, Y) of the enemy aircraft to fire an attack bullet with (Xs (t), Ys (t)) as the target position. The required arrival time Tn is calculated. Then, the absolute value of the difference between t and Tn is calculated.
The attack target position determination unit 40 determines whether the absolute value of the difference between the required arrival times Tn and t is smaller than a predetermined value C read from the storage unit 105. The predetermined value C can be, for example, S / Ve, where S is half of the sum of the size of the own aircraft and the size of the enemy attacking bullet, and Ve is the velocity of the attacking bullet of the enemy aircraft.

S/Ve>|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることができる。敵機が(Xs(t),Ys(t))を目標位置として攻撃弾を発射すれば、自機を破壊することができる可能性があるためである。この場合、S10の処理を行う。
S/Ve<|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることはできない。この場合、図8のステップS11の処理を行う。
If S / Ve> | t−Tn |, (Xs (t), Ys (t)) can be set as the attack target position. This is because if the enemy aircraft fires an attack bullet with (Xs (t), Ys (t)) as the target position, there is a possibility that the own aircraft can be destroyed. In this case, the process of S10 is performed.
If S / Ve <| t−Tn |, (Xs (t), Ys (t)) cannot be set as the attack target position. In this case, the process of step S11 in FIG. 8 is performed.

<ステップS10>
S/Ve>|t−Tn|であれば、(Xs(t),Ys(t))を攻撃目標位置とすることができるため、攻撃目標位置判定部40は、(Xs(t),Ys(t))を、攻撃目標位置バッファ50に格納する。また、Db=dとして新たにDbを設定し、これをバッファ103に格納する。また、tb=tとして新たにtbを設定し、これをバッファ103に格納する。
<Step S10>
If S / Ve> | t−Tn |, since (Xs (t), Ys (t)) can be set as the attack target position, the attack target position determination unit 40 determines (Xs (t), Ys). (T)) is stored in the attack target position buffer 50. Further, Db is newly set as Db = d, and this is stored in the buffer 103. Further, tb is newly set as tb = t, and this is stored in the buffer 103.

<ステップS11>
自機移動パターン生成部11の制御部112は、ステップS3のときから、行動単位時間Tが経過したかどうかを判定する。すなわち、バッファから読み出したtがde×Tよりも大きいかどうか、つまり、t≧de×Tかどうかを判定する。
t<dTであれば、ステップS5の処理を行う。すなわち、tがステップS3の時から行動単位時間Tを経過するまで、ステップS5〜S10の処理を繰り返す。
t≧dTであれば、ステップS12の処理を行う。
<Step S11>
The control unit 112 of the own device movement pattern generation unit 11 determines whether or not the behavior unit time T has elapsed since step S3. That is, it is determined whether t read from the buffer is larger than de × T, that is, whether t ≧ de × T.
If t <dT, the process of step S5 is performed. That is, the process of steps S5 to S10 is repeated until t has elapsed the behavior unit time T from the time of step S3.
If t ≧ dT, the process of step S12 is performed.

<ステップS12>
自機移動パターン生成部11の制御部112は、現d,j,de値での自機位置(Xs(d,de,j),Ys(d,de,j))のデータを、自機移動パターンバッファ51に格納する。また、自機移動パターン生成部11の制御部102は、現d,j,de値での敵機の攻撃弾の位置(Xbik(d,de,j),Ybik(d,de,j))のデータを、敵機攻撃弾状態バッファ52に格納し、図10に示すステップS13の処理を行う。
<Step S12>
The control unit 112 of the own device movement pattern generation unit 11 uses the data of the own device position (Xs (d, de, j), Ys (d, de, j)) at the current d, j, and de values as the own device. Store in the movement pattern buffer 51. Further, the control unit 102 of the own-device movement pattern generation unit 11 uses the current d, j, de values of the enemy aircraft attack bullets (Xbik (d, de, j), Ybik (d, de, j)). Is stored in the enemy aircraft attack bullet state buffer 52, and the process of step S13 shown in FIG. 10 is performed.

<ステップS13>
自機移動パターン生成部11の制御部112は、バッファ103から読み出した自機行動順列番号jを1だけインクリメントする。インクリメントされた自機行動順列番号jは、バッファ103に格納される。
<Step S13>
The control unit 112 of the own device movement pattern generation unit 11 increments the own device action permutation number j read from the buffer 103 by one. The incremented own device action permutation number j is stored in the buffer 103.

<ステップS14>
自機移動パターン生成部11の制御部112は、バッファ103から読み出した自機行動順列番号jが、j=wのd乗かどうかを判定する。
j≠wのd乗であれば、ステップS3の処理を行う。すなわち、すべての自機行動順列番号jについて、ステップS3〜S12の処理が繰り返されることになる。
j=wのd乗であれば、ステップS15の処理を行う。
<Step S14>
The control unit 112 of the own device movement pattern generation unit 11 determines whether or not the own device action permutation number j read from the buffer 103 is j = w to the d power.
If j ≠ w to the power d, the process of step S3 is performed. That is, the process of steps S3 to S12 is repeated for all the own machine action permutation numbers j.
If j = w to the d power, the process of step S15 is performed.

<ステップS15>
自機移動パターン生成部11の制御部112は、バッファ103から読み出したdを1だけインクリメントする。インクリメントされたdは、バッファ103に格納される。
<Step S15>
The control unit 112 of the own device movement pattern generation unit 11 increments d read from the buffer 103 by one. The incremented d is stored in the buffer 103.

<ステップS16>
自機移動パターン生成部11の制御部112は、バッファ103から読み出したdが、バッファ103から読み出したDbより大きいかどうかを判定する。すなわち、Db<dかどうかを判定する。
Db≧dであると判定された場合には、制御部112は、図8に示すステップS2の処理を行う。
Db<dであると判定された場合には、本実施形態による横型探索は終了し、制御部112は、ステップS21の処理を行う。
<Step S16>
The control unit 112 of the own device movement pattern generation unit 11 determines whether d read from the buffer 103 is larger than Db read from the buffer 103. That is, it is determined whether Db <d.
When it is determined that Db ≧ d, the control unit 112 performs the process of step S2 shown in FIG.
If it is determined that Db <d, the horizontal search according to the present embodiment ends, and the control unit 112 performs the process of step S21.

<ステップS17>(図8)
ステップS7の処理において、自機と敵機の攻撃弾が衝突していると判定された場合には、自機移動パターン生成部11の制御部112は、現在のdをdc(k)、現在のjをjc(k)として、自機移動パターンバッファ51に格納する。そして、バッファ103から読み出したkを1だけインクリメントして、バッファ103に再度格納する。
ステップS17の処理が終わった後は、図10に示すステップS13の処理を行う。
<Step S17> (FIG. 8)
If it is determined in the process of step S7 that the attack bullets of the own aircraft and the enemy aircraft collide, the control unit 112 of the own aircraft movement pattern generation unit 11 sets the current d to dc (k), Is stored in the own movement pattern buffer 51 as jc (k). Then, k read from the buffer 103 is incremented by 1 and stored in the buffer 103 again.
After the process of step S17 is completed, the process of step S13 shown in FIG. 10 is performed.

<ステップS18>
順列獲得部107は、順列データバッファ53を検索して、現在評価している自機行動順列の要素と同じ要素を持つ順列の自機行動順列の深さdsとその順列番号jsを獲得する。
例えば、図11に示すように、d=2,j=1の自機行動順列が{w(2,1,1)=1,w(2,2,1)=1}であり、d=1,j=1の自機行動順列が{w(1,1,1)=1}である場合には、w(2,1,1)=1とw(1,1,1)=1の部分で、自機行動順列の要素が一致するため、de=1の部分で同じ要素を持つということができる。したがって、d=2,j=1の自機行動順列{w(2,1,1)=1,w(2,2,1)=1}についてのdsは1となり、jsは1となる。すなわち、(ds,js)=(1,1)となる。
<Step S18>
The permutation acquisition unit 107 searches the permutation data buffer 53 and acquires the depth ds of the permutation action permutation having the same elements as the elements of the pertinent behavior permutation currently evaluated and the permutation number js.
For example, as shown in FIG. 11, the permutation sequence of d = 2, j = 1 is {w (2,1,1) = 1, w (2,2,1) = 1}, and d = 1, j = 1, when the own permutation is {w (1,1,1) = 1}, w (2,1,1) = 1 and w (1,1,1) = 1 Since the elements of the own machine action permutation coincide with each other, it can be said that the part with de = 1 has the same element. Therefore, ds is 1 and js is 1 for the own device permutation {w (2,1,1) = 1, w (2,2,1) = 1} with d = 2 and j = 1. That is, (ds, js) = (1, 1).

また、例えば、d=3,j=1の自機行動順列が{w(3,1,1)=1,w(3,2,1)=1,w(3,3,1)=1}であり、d=2,j=1の自機行動順列が{w(2,1,1)=1,w(2,2,1)=1}であり、d=1,j=1の自機行動順列が{w(1,1,1)=1}である場合には、d=3,j=1の自機行動順列とd=2,j=1の自機行動順列のうち、{w(3,1,1)=1,w(3,2,1)=1}と{w(2,1,1)=1,w(2,2,1)=1}の部分で、自機行動順列の要素が一致する。また、d=3,j=1の自機行動順列とd=1,j=1の自機行動順列のうち、w(2,1,1)=1とw(1,1,1)=1の部分で自機行動順列の要素が一致する。したがって、d=3,j=1の自機行動順列{w(3,1,1)=1,w(3,2,1)=1,w(3,3,1)=1}についてのdsとjsは、(ds,js)={(1,1),(2,1)}となる。   Also, for example, the own machine action permutation of d = 3, j = 1 is {w (3,1,1) = 1, w (3,2,1) = 1, w (3,3,1) = 1. }, And the own action permutation of d = 2, j = 1 is {w (2,1,1) = 1, w (2,2,1) = 1}, and d = 1, j = 1. If the own action sequence of {w (1, 1, 1) = 1}, the own action sequence of d = 3, j = 1 and the own action sequence of d = 2, j = 1. Of these, {w (3,1,1) = 1, w (3,2,1) = 1} and {w (2,1,1) = 1, w (2,2,1) = 1} In the part, the elements of the self-behavior permutation match. In addition, among the own device action permutation of d = 3, j = 1 and the own device action permutation of d = 1, j = 1, w (2,1,1) = 1 and w (1,1,1) = In the part 1, the elements of the own machine action permutation match. Therefore, d = 3, j = 1 per-machine action permutation {w (3,1,1) = 1, w (3,2,1) = 1, w (3,3,1) = 1} ds and js are (ds, js) = {(1, 1), (2, 1)}.

<ステップS19>
自機移動パターン生成部11の制御部112は、dc(k)=ds,jc(k)=jsとなるkが存在するかどうか自機移動パターンバッファ51を検索する。(ds,js)の組が複数ある場合には、それぞれの(ds,js)の組について、dc(k)=ds,jc(k)=jsとなるkが存在するかどうかを検索する。
dc(k)=ds,jc(k)=jsとなるkが存在する場合には、図10に示したステップS13の処理を行う。
dc(k)=ds,jc(k)=jsとなるkが存在しない場合には、ステップS20の処理を行う。
<Step S19>
The control unit 112 of the own device movement pattern generation unit 11 searches the own device movement pattern buffer 51 for k that satisfies dc (k) = ds, jc (k) = js. If there are a plurality of pairs of (ds, js), it is searched whether or not k satisfying dc (k) = ds, jc (k) = js exists for each (ds, js) pair.
When k satisfying dc (k) = ds and jc (k) = js exists, the process of step S13 shown in FIG. 10 is performed.
If k that satisfies dc (k) = ds and jc (k) = js does not exist, the process of step S20 is performed.

<ステップS20>
自機移動パターン生成部11の制御部112は、dc(k)=ds,jc(k)=jsとなるkが存在しない場合には、ステップS18で求まった(ds,js)の組のうちdsの値が最大である(ds,js)を求める。そして、上記dsの値が最大である(ds,js)に従って移動を行った結果の自機位置(Xs(ds,ds,js),Ys(ds,ds,js))と攻撃弾位置(Xbik(ds,ds,js),Ybik(ds,ds,js))を、自機移動パターンバッファ51から読み込む。また、t=T×(d−1)、de=dとして、このtとdeをそれぞれバッファ103に格納する。
<Step S20>
When there is no k that satisfies dc (k) = ds, jc (k) = js, the control unit 112 of the own-device movement pattern generation unit 11 is the group of (ds, js) obtained in step S18. (ds, js) having the maximum value of ds is obtained. Then, the own position (Xs (ds, ds, js), Ys (ds, ds, js)) and the attack bullet position (Xbik) as a result of movement according to the maximum value of ds (ds, js). (Ds, ds, js), Ybik (ds, ds, js)) is read from the own movement pattern buffer 51. Further, t = de × d and t = de are stored in the buffer 103, respectively.

<ステップS21>(図10)
ステップS16において、Db<dであると判定された場合には、攻撃弾の目標位置の探索を終了する。そして、攻撃弾発射部60が、攻撃目標位置バッファ50から読み出した攻撃目標位置(Xdes,Ydes)に向けて、敵機に攻撃弾を発射させる。
以上が、第2実施形態によるシューティングゲーム処理方法、その装置の概要である。
<Step S21> (FIG. 10)
If it is determined in step S16 that Db <d, the search for the target position of the attack bullet is terminated. Then, the attack bullet launcher 60 causes the enemy aircraft to launch an attack bullet toward the attack target position (Xdes, Ydes) read from the attack target position buffer 50.
The above is the outline of the shooting game processing method and apparatus according to the second embodiment.

[変形例等]
変形例1
行動単位時間Tの設定方法としは、以下のようなものがある。
例えば、自機移動パターン生成部10と自機移動パターン生成部11の操作履歴記録部108が、プレイヤーの操作履歴についてのデータを取っているものとする。行動単位時間設定部109は、操作履歴記録部108に記録された操作履歴データから、自機が移動方向を変更した時間の間隔の平均値を計算し、この計算結果を行動単位時間Tとして設定することができる。
これにより、プレイヤーの癖を考慮した攻撃弾の発射が可能となる。
[Modifications, etc.]
Modification 1
There are the following methods for setting the behavior unit time T.
For example, it is assumed that the operation history recording unit 108 of the own device movement pattern generation unit 10 and the own device movement pattern generation unit 11 takes data on the operation history of the player. The action unit time setting unit 109 calculates the average value of the time interval when the own device changes the moving direction from the operation history data recorded in the operation history recording unit 108 and sets the calculation result as the action unit time T. can do.
This makes it possible to fire attack bullets that take into account the player's trap.

変形例2
また、攻撃目標位置の探索において、自機の行動の度ごとに行動単位時間Tを変更することができる。例えば、自機の行動の回数が多くなるほど、言い換えれば、探索の深さdが深くなるほど、行動単位時間Tの長さを指数関数的に大きくすることができる。探索の深さdが深くなるほど、行動単位時間Tを長くすることにより、限られた深さの探索においても、より未来の状態まで考慮した探索を行うことができる。このために、例えば、行動単位時間設定部109は、第1実施形態におけるステップS11の処理において、または、第2実施形態におけるステップS15の処理において、dをインクリメントした後に、Aexp(d)を計算し、この計算結果を行動単位時間Tに設定する。ここで、Aは1より大きい任意の実数である。
Modification 2
In the search for the attack target position, the action unit time T can be changed for each action of the own machine. For example, the length of the action unit time T can be increased exponentially as the number of actions of the own machine increases, in other words, as the search depth d increases. By increasing the action unit time T as the search depth d becomes deeper, even in a limited depth search, it is possible to perform a search that considers even a future state. For this purpose, for example, the behavior unit time setting unit 109 calculates Aexp (d) after incrementing d in the process of step S11 in the first embodiment or in the process of step S15 in the second embodiment. Then, this calculation result is set as the action unit time T. Here, A is an arbitrary real number larger than 1.

変形例3
また、自機が現在速度を未来において一定時間Tcだけ継続してから、攻撃目標位置を求める探索をするようにしても良い。探索計算を実質的に一段深く行うことができるためである。すなわち、自機が現在速度を未来において一定時間Tcだけ継続したと仮定した後に、D=5の探索を行う場合には、実質的にD=6の探索を行ったのと同じ探索を行うことができる。
Modification 3
Alternatively, the search for the target position of the attack may be performed after the own device continues the current speed for a certain time Tc in the future. This is because the search calculation can be performed substantially deeper. That is, when it is assumed that the current speed has continued for a certain period of time Tc in the future, when searching for D = 5, the same search as that performed for D = 6 should be performed. Can do.

ユーザが画面に表示された自機、敵機、攻撃弾を見てから、自機の行動を決めて、その行動を入力するには、行動単位時間T以上の時間がかかることが普通である。したがって、自機が現在速度を未来において一定時間Tcだけ継続したとして、攻撃目標位置を求める探索を行うようにしても問題は生じない。また、自機と敵機の行動選択のタイミングが同時ではない場合、すなわち、敵機が行動を選択する場合に、自機が移動中である場合においても、自機が現在速度を未来において一定時間Tcだけ継続したとして探索を行うことにより、敵機が行動を選択することができる。   It is common for a user to take action unit time T or more to determine his own action after inputting his / her own enemy, enemy aircraft and attack bullets displayed on the screen and to input the action. . Therefore, there is no problem even if the search for the target position of the attack is performed, assuming that the current device continues the current speed for a certain time Tc in the future. Also, if the action selection timing of the own aircraft and the enemy aircraft is not simultaneous, that is, if the enemy aircraft selects an action, even if the own aircraft is moving, the own aircraft will keep the current speed constant in the future The enemy aircraft can select an action by performing a search assuming that the time Tc has continued.

第1実施形態において、自機が現在速度を未来において一定時間Tcだけ継続した後に、探索を行うために、第1実施形態のステップS1又は第2実施形態のステップS1おける処理において、初期化部101は、時刻t=0における自機の位置(Xs(t),Ys(t))を、自機が現在速度を一定時間Tcだけ移動した位置に設定する。また、第1実施形態のステップS5又は第2実施形態のステップS6の処理において、攻撃弾位置推定部20は、位置取得部202が取得した敵機が既に発射した攻撃弾の現在位置から、その攻撃弾が一定時間Tcだけ移動した位置を計算することにより、更新前の攻撃弾の位置(Xbik(t−τ),Ybik(t−τ))を求める。また、第1実施形態のステップS8又は第2実施形態のステップS9の処理において、攻撃目標位置判定部40は、S/Ve>|t−Tn|かどうかではなく、S/Ve>|t+Tc−Tn|かどうかを判定する。
その他の処理は、上記各実施形態と同じである。例えば、上記一定時間Tcには、変形例1で説明した自機が移動方向を変更した時間の間隔の平均値を設定することができる。
In the first embodiment, in order to perform a search after the own device continues the current speed for a certain time Tc in the future, in the process in step S1 of the first embodiment or step S1 of the second embodiment, the initialization unit 101 sets the position (Xs (t), Ys (t)) of the own apparatus at time t = 0 to a position where the own apparatus has moved the current speed by a fixed time Tc. Moreover, in the process of step S5 of the first embodiment or step S6 of the second embodiment, the attack bullet position estimation unit 20 calculates the attack bullet from the current position of the enemy bullet already fired by the enemy aircraft acquired by the position acquisition unit 202. The position (Xbik (t−τ), Ybik (t−τ)) of the attacking bullet before update is obtained by calculating the position where the attacking bullet has moved for a certain time Tc. In the process of step S8 of the first embodiment or step S9 of the second embodiment, the attack target position determination unit 40 does not determine whether S / Ve> | t−Tn |, but S / Ve> | t + Tc−. It is determined whether Tn |.
Other processes are the same as those in the above embodiments. For example, as the fixed time Tc, it is possible to set an average value of time intervals when the own device described in the first modification changes the moving direction.

変形例4
第1実施形態のステップS18もしくは第2実施形態のステップ21において、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾発射部60は、自機の現在位置に向けて攻撃弾を発射するようにすることができる。
Modification 4
In step S18 of the first embodiment or step 21 of the second embodiment, if the attack target position is not stored in the attack target position buffer 50, the attack bullet launching section 60 It is possible to fire an attack bullet at the current position of the aircraft.

変形例5
また、第1実施形態のステップS18もしくは第2実施形態のステップ21において、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾発射部60は、自機の現在位置に、あるランダムな変位を与えた位置に向けて攻撃弾を敵機に発射させることができる。
Modification 5
Further, in step S18 of the first embodiment or step 21 of the second embodiment, the attack bullet launching unit 60 determines that the attack bullet launching unit 60 does not store the attack target position in the attack target position buffer 50. It is possible to fire an attack bullet at the enemy aircraft toward a position where a certain random displacement is given to the current position of the own aircraft.

例えば、攻撃弾発射部60の乱数発生部61が、X軸方向の変位量とY軸方向の変位量のそれぞれについてのランダムな値を生成する。攻撃弾発射部60が、自機の現在位置に上記生成されたX軸方向の変位量とY軸方向の変位量を加算した位置に向けて攻撃弾を敵機に発射させる。   For example, the random number generator 61 of the attack bullet launcher 60 generates a random value for each of the displacement amount in the X-axis direction and the displacement amount in the Y-axis direction. The attack bullet firing unit 60 causes the enemy aircraft to launch an attack bullet toward a position obtained by adding the generated displacement amount in the X-axis direction and the displacement amount in the Y-axis direction to the current position of the own aircraft.

具体的には、自機の形状に内接する円の直径をMとすると、X軸方向の変位量,Y軸方向の変位量の幅を、−3M〜3M程度にすると良い。例えば、自機の形状の大きさが30ドットの場合には、X軸方向の変位量,Y軸方向の変位量としては、それぞれ、−50〜50の値をランダムに取ることができるようにすると良い。   Specifically, if the diameter of a circle inscribed in the shape of the machine is M, the width of the displacement amount in the X-axis direction and the displacement amount in the Y-axis direction is preferably about −3M to 3M. For example, when the size of its own shape is 30 dots, the displacement amount in the X-axis direction and the displacement amount in the Y-axis direction can each take a value of −50 to 50 at random. Good.

変形例6
第1実施形態のステップS18において、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾目標位置が見つかっていない旨の信号を自機移動パターン生成部10に出力するようにしてもよい。
Modification 6
In step S <b> 18 of the first embodiment, when the attack target position buffer 50 does not store the attack target position, the attack bullet launching unit 60 outputs a signal indicating that the attack bullet target position has not been found. You may make it output to the production | generation part 10. FIG.

上記信号を受け取った自機移動パターン生成部10は、自機が現在の速度を維持すると仮定して、自機が現在の速度を維持する行動を取り続ける場合の自機の移動先を生成する。攻撃目標位置判定部40は、その移動先に至るまでの各位置について、適切な攻撃弾目標位置と成り得るかどうかを判定する。すなわち、その移動先に至るまでの各位置について、その位置に自機が移動する時間と敵機が発射する攻撃弾がその位置に移動する時間の差の絶対値が、所定の値Cよりも小さいかどうかを判定する。所定の値Cよりも小さい場合には、その位置を攻撃目標位置とすることができる。攻撃弾発射部60は、その攻撃目標位置に向けて攻撃弾を発射する。   Receiving the signal, the own-device movement pattern generation unit 10 assumes that the own device maintains the current speed, and generates the destination of the own device when the own device continues to take action to maintain the current speed. The attack target position determination unit 40 determines whether or not each position up to the movement destination can be an appropriate attack bullet target position. In other words, for each position up to the destination, the absolute value of the difference between the time for the aircraft to move to that position and the time for the attack bullets fired by the enemy aircraft to move to that position is greater than the predetermined value C. Determine if it is small. When it is smaller than the predetermined value C, the position can be set as the attack target position. The attack bullet launcher 60 launches an attack bullet toward the attack target position.

変形例7
また、変形例6で述べたように、第1実施形態のステップS18において、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾目標位置が見つかっていない旨の信号を自機移動パターン生成部10に出力する。
上記信号を受け取った自機移動パターン生成部10の制御部102は、記憶部105に格納された所定の値Cを読み出し、所定の値Cをより大きな値に設定しなおして記憶部105に格納する。そして、上記ステップS1〜18の各処理を再度実行するようにしてもよい。
Modification 7
Further, as described in the modified example 6, in step S18 of the first embodiment, the attack bullet launching unit 60 sets the attack bullet target position when the attack target position is not stored in the attack target position buffer 50. A signal indicating that it has not been found is output to its own movement pattern generation unit 10.
Receiving the signal, the control unit 102 of the own movement pattern generation unit 10 reads the predetermined value C stored in the storage unit 105, resets the predetermined value C to a larger value, and stores it in the storage unit 105. To do. And you may make it perform each process of the said step S1-18 again.

変形例8
また、変形例6で述べたように、第1実施形態のステップS18において、攻撃弾発射部60は、攻撃目標位置バッファ50に攻撃目標位置が格納されていない場合には、攻撃弾目標位置が見つかっていない旨の信号を自機移動パターン生成部10に出力する。
攻撃目標位置が見つかっていない旨の信号を受け取った自機移動パターン生成部10の制御部102は、記憶部105に格納された探索の深さDを読み出し、1だけインクリメントしたD+1の値を新たなDとして記憶部105に格納する。そして、上記ステップS1〜18の各処理を再度実行するようにしても良い。
制御部102は、インクリメントしたD+1が一定の値Dcになったら、探索を終了する。すなわち、インクリメントしたD+1が一定の値Dcになった場合には、ステップS1〜18の各処理を実行するのを止める。
Modification 8
Further, as described in the modified example 6, in step S18 of the first embodiment, the attack bullet launching unit 60 sets the attack bullet target position when the attack target position is not stored in the attack target position buffer 50. A signal indicating that it has not been found is output to its own movement pattern generation unit 10.
Receiving the signal that the attack target position has not been found, the control unit 102 of the own movement pattern generation unit 10 reads the search depth D stored in the storage unit 105 and newly adds a value of D + 1 incremented by one. Stored as D in the storage unit 105. And you may make it perform each process of the said step S1-18 again.
When the incremented D + 1 reaches a certain value Dc, the control unit 102 ends the search. That is, when the incremented D + 1 becomes a constant value Dc, the execution of each process of steps S1 to S18 is stopped.

変形例9
上記実施形態では、自機が最も短い時間で到達することができる攻撃目標位置についてのみ攻撃弾を発射したが、攻撃目標位置が見つかるごとに、攻撃弾発射部60が、その攻撃目標位置に向けて攻撃弾を敵機に発射させるようにしてもよい。
Modification 9
In the above embodiment, the attack bullet is fired only for the attack target position that the aircraft can reach in the shortest time. However, every time the attack target position is found, the attack bullet launching unit 60 is directed to the attack target position. The attacking bullets may be fired at the enemy aircraft.

その他
上記変形例6〜9は、第2実施形態についても同様にして行うことができる。また、上記の変形例を組み合わせて行っても良い。
また、上記シューティングゲーム処理装置の処理機能をコンピュータによって実現することができる。この場合、シューティングゲーム処理装置の処理機能の内容はプログラムによって記述される。そして、このプログラムを、図12に示すようなコンピュータで実行することにより、上記シューティングゲーム処理装置の処理機能がコンピュータ上で実現される。
In addition, the said modifications 6-9 can be performed similarly about 2nd Embodiment. Moreover, you may carry out combining the said modification.
The processing function of the shooting game processing device can be realized by a computer. In this case, the content of the processing function of the shooting game processing device is described by a program. Then, by executing this program on a computer as shown in FIG. 12, the processing functions of the shooting game processing device are realized on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used. Specifically, for example, as a magnetic recording device, a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only). Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own recording medium and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is provided for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ユーザ端末を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the user terminal is configured by executing a predetermined program on the computer. However, at least a part of the processing contents may be realized by hardware.

以上の各実施形態の他、本発明であるシューティングゲーム処理方法、その装置等は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。   In addition to the above embodiments, the shooting game processing method, the apparatus thereof, and the like according to the present invention are not limited to the above-described embodiments, and can be appropriately changed without departing from the spirit of the present invention.

シューティングゲーム処理装置1000の機能構成を例示した図。The figure which illustrated the function structure of the shooting game processing apparatus 1000. シューティングゲーム処理装置1000の処理を例示した図。The figure which illustrated processing of shooting game processing device 1000. シューティングゲームの模式図。A schematic diagram of a shooting game. 安全行動パターンを説明するための図。The figure for demonstrating a safe action pattern. 縦型探索の探索順序を示す図。The figure which shows the search order of a vertical type search. 横型探索の探索順序を示す図。The figure which shows the search order of a horizontal type search. シューティングゲーム処理装置1001の機能構成を例示した図。The figure which illustrated the function structure of the shooting game processing apparatus 1001. シューティングゲーム処理装置1001の処理を例示した図(1)。The figure (1) which illustrated processing of shooting game processing device 1001. シューティングゲーム処理装置1001の処理を例示した図(2)。The figure (2) which illustrated processing of shooting game processing device 1001. シューティングゲーム処理装置1001の処理を例示した図(3)The figure (3) which illustrated processing of shooting game processing device 1001 自機行動順列の要素の一致の例を説明するための図。The figure for demonstrating the example of a coincidence of the element of a self-machine action permutation. シューティングゲーム難易度判定装置をコンピュータにより実行するときの機能構成を例示した図。The figure which illustrated functional composition when a shooting game difficulty level judging device is performed with a computer.

符号の説明Explanation of symbols

1 自機
2 敵機
3 攻撃弾
4 攻撃弾
5 CPU
6 RAM
7 出力部
8 補助記憶部
9 入力部
9’ バス
10 自機移動パターン生成部
11 自機移動パターン生成部
20 攻撃弾位置推定部
21 ステップ
30 衝突判定部
40 攻撃目標位置判定部
41 到達時間差計算部
50 攻撃目標位置バッファ
51 自機移動パターンバッファ
52 敵機攻撃弾状態バッファ
53 順列データバッファ
60 攻撃弾発射部
61 乱数発生部
101 初期化部
102 制御部
103 バッファ
104 位置更新部
105 記憶部
106 順列作成部
107 順列獲得部
108 操作履歴記録部
109 行動単位時間設定部
112 制御部
201 記憶部
202 位置取得部
401 到達時間差計算部
1000 シューティングゲーム処理装置
1001 シューティングゲーム処理装置
1 Own aircraft 2 Enemy aircraft 3 Attack bullet 4 Attack bullet 5 CPU
6 RAM
DESCRIPTION OF SYMBOLS 7 Output part 8 Auxiliary memory part 9 Input part 9 'Bus 10 Own machine movement pattern production | generation part 11 Own machine movement pattern production part 20 Attack bullet position estimation part 21 Step 30 Collision judgment part 40 Attack target position judgment part 41 Arrival time difference calculation part 50 Attack target position buffer 51 Own machine movement pattern buffer 52 Enemy aircraft attack bullet state buffer 53 Permutation data buffer 60 Attack bullet firing unit 61 Random number generation unit 101 Initialization unit 102 Control unit 103 Buffer 104 Position update unit 105 Storage unit 106 Permutation creation Unit 107 permutation acquisition unit 108 operation history recording unit 109 action unit time setting unit 112 control unit 201 storage unit 202 position acquisition unit 401 arrival time difference calculation unit 1000 shooting game processing device 1001 shooting game processing device

Claims (14)

自機移動パターン生成手段と、衝突判定手段と、到達時間差計算手段と、攻撃目標位置判定手段と、攻撃弾発射手段とを備えたコンピュータが、画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理を行う方法であって、
自機移動パターン生成手段が、所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、
衝突判定手段が、自機が、上記自機の各移動先の候補へ移動する途中の各位置において、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、
到達時間差計算手段が、上記衝突判定過程において衝突しないと判定された場合には、自機が上記衝突判定過程において衝突しないと判定された上記自機の各移動先の候補へ移動する途中の位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が上記衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する到達時間差計算過程と、
攻撃目標位置判定手段が、上記差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、上記衝突しないと判定された位置を攻撃目標位置とする攻撃目標位置判定過程と、
攻撃弾発射手段が、上記攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる攻撃発射過程と、
を有することを特徴とするシューティングゲーム処理方法。
A computer equipped with its own movement pattern generation means, collision determination means, arrival time difference calculation means, attack target position determination means, and attack bullet launching means displays its own aircraft and enemy aircraft on the screen, and W A method of processing a shooting game in which an own aircraft is moved by an operation of selecting a kind of action to fight an enemy aircraft that attacks the own aircraft,
A self-movement pattern generation process in which a self-movement pattern generation unit generates candidates for each movement destination of the self-machine that performs an action that moves for a predetermined time (hereinafter referred to as a behavior unit time T);
A collision determination process in which the collision determination means determines whether the enemy aircraft collides with an attack bullet that has already been fired at each position in the middle of the movement of the aircraft to each destination candidate of the aircraft;
When the arrival time difference calculating means determines that the collision does not occur in the collision determination process, the position where the own apparatus is moving to each destination candidate of the own apparatus determined not to collide in the collision determination process An arrival time difference calculation process for calculating the absolute value of the difference between the time required to move to and the time required for the enemy aircraft to newly move to the position determined to not collide ,
The attack target position determining means determines whether or not the absolute value of the difference is smaller than a predetermined value. If the absolute value of the difference is smaller than the predetermined value, the position determined not to collide is determined. Attack target position determination process as an attack target position,
An attack bullet launching process in which an attack bullet launching means launches a new attack bullet to the enemy aircraft toward the attack target position,
A shooting game processing method characterized by comprising:
請求項1に記載のシューティングゲーム処理方法であって、
上記自機移動パターン生成過程は、自機の現在位置を根とし、行動単位ごとに自機が取り得る各速度で決まる経路を枝とする行動パターンを探索木として構成する過程であり、
上記根に近い各枝経路から順に、上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により、攻撃目標位置を探索する、
ことを特徴とするシューティングゲーム処理方法。
A shooting game processing method according to claim 1,
The own machine movement pattern generation process is a process of constructing a search tree with an action pattern having a route determined by each speed that can be taken by the own machine for each action unit as a branch, based on the current position of the own machine.
In order from each branch path close to the root, search for an attack target position by the collision determination process, the arrival time difference calculation process, and the attack target position determination process.
A method for processing a shooting game.
請求項1に記載のシューティングゲーム処理方法であって、
上記自機移動パターン生成過程は、自機の現在位置を根とし、行動単位ごとに自機が取り得る各速度で決まる経路を枝とする行動パターンを探索木として構成する過程であり、
上記根から限界深さに至る各行動パターンを予め決めた順に、その行動パターンにおける各経路において、上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により攻撃目標位置を探索する
ことを特徴とするシューティングゲーム処理方法。
A shooting game processing method according to claim 1,
The own machine movement pattern generation process is a process of constructing a search tree with an action pattern having a route determined by each speed that can be taken by the own machine for each action unit as a branch, based on the current position of the own machine.
Search for the attack target position by the collision determination process, the arrival time difference calculation process, and the attack target position determination process in each route in the action pattern in a predetermined order from the root to the limit depth. A shooting game processing method characterized by the above.
請求項1〜3の何れかに記載のシューティングゲーム処理方法において、
上記攻撃目標位置判定過程は、更に、攻撃目標位置が複数存在する場合には、自機が最も短い時間で到達することができる攻撃目標位置を決定する過程、を更に有し、
上記攻撃発射過程は、上記自機が最も短い時間で到達することができる攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる過程である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 1-3,
The attack target position determining process further includes a process of determining an attack target position that the aircraft can reach in the shortest time when there are a plurality of attack target positions.
The attack bullet firing process is a process in which the enemy aircraft launches a new attack bullet toward the target position where the aircraft can reach in the shortest time.
A method for processing a shooting game.
請求項1〜4の何れかに記載のシューティングゲーム処理方法において、
上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程とを繰り返し、
上記到達時間差計算過程は、既に行われた攻撃目標位置判定過程において攻撃目標位置が見つかったときには、上記攻撃目標位置に自機が移動する時間よりも、上記攻撃目標位置以外の衝突しないと判定された位置に自機が移動する時間の方が短い場合のみ、自機がその衝突しないと判定された位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾がその衝突しないと判定された位置へ移動するのに必要な時間との上記差の絶対値を計算する過程であり、
上記到達時間差計算過程は、更に、最後に見つかった攻撃目標位置のみを攻撃目標位置とする過程を有する、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 1-4,
Repeat the collision determination process, the arrival time difference calculation process, and the attack target position determination process,
In the arrival time difference calculation process, when an attack target position is found in the already performed attack target position determination process, it is determined that there is no collision other than the attack target position, rather than the time for the aircraft to move to the attack target position. Only when the time it takes for the aircraft to move to the selected position is shorter, the time required for the aircraft to move to the position where it is determined that it will not collide, and the attack bullets that the enemy aircraft newly fires will not collide. Calculating the absolute value of the above difference from the time required to move to the determined position,
The arrival time difference calculation process further includes a process in which only the last attack target position found is the attack target position.
A method for processing a shooting game.
請求項1〜5の何れかに記載のシューティングゲーム処理方法において、
上記所定の値は、自機の大きさと敵機が新たに発射する攻撃弾の大きさの和の半分をその攻撃弾の速さで割った値である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 1-5,
The predetermined value is a value obtained by dividing half the sum of the size of the own aircraft and the size of the attack bullet newly fired by the enemy aircraft by the speed of the attack bullet.
A method for processing a shooting game.
請求項1〜6の何れかに記載のシューティングゲーム処理方法において、
ゲームプレイヤーの自機操作履歴における自機移動方向変更時間間隔の平均値を、上記行動単位時間Tとする、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method according to any one of claims 1 to 6,
The average value of the movement direction change time interval of the player in the player operation history of the game player is the action unit time T.
A method for processing a shooting game.
請求項1〜6の何れかに記載のシューティングゲーム処理方法において、更に、
行動単位時間設定手段が、上記行動単位時間Tを、自機の行動の回数が多くなるほど大きくする行動単位時間設定過程を有する、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method according to any one of claims 1 to 6,
The action unit time setting means has an action unit time setting process for increasing the action unit time T as the number of actions of the own device increases.
A method for processing a shooting game.
請求項1〜8の何れかに記載のシューティングゲーム処理方法において、
上記自機移動パターン生成過程は、自機位置の現在速度を自機が未来において一定時間Tc継続した後に、行動単位時間Tだけ移動する行動をD回行う自機の各移動先の候補を生成する過程である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 1-8,
The own-machine movement pattern generation process generates candidates for each destination of the own-machine that performs an action that moves only for the action unit time T after the current speed of the own-machine position continues for a certain time Tc in the future. Is the process of
A method for processing a shooting game.
請求項1〜9の何れかに記載のシューティングゲーム処理方法において、
上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により探索しても上記自機の各移動先の候補のいずれについても攻撃目標位置が見つからない場合には、
上記攻撃弾発射過程は、自機の現在位置へ向けて敵機に新たな攻撃弾を発射させる過程である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 1-9,
Even if searching by the collision determination process, the arrival time difference calculation process, and the attack target position determination process and no target position is found for any of the destination candidates of the aircraft,
The above-mentioned attack bullet launching process is a process of launching a new attack bullet to the enemy aircraft toward its current position,
A method for processing a shooting game.
請求項1〜9の何れかに記載のシューティングゲーム処理方法において、
上記衝突判定過程と上記到達時間差計算過程と上記攻撃目標位置判定過程により探索しても上記自機の各移動先の候補のいずれについても攻撃目標位置が見つからない場合には、
上記攻撃弾発射過程は、自機の現在位置にあるランダムな変位を与えた位置へ向けて敵機に新たな攻撃弾を発射させる過程である、
ことを特徴とするシューティングゲーム処理方法。
In the shooting game processing method in any one of Claims 1-9,
Even if searching by the collision determination process, the arrival time difference calculation process, and the attack target position determination process and no target position is found for any of the destination candidates of the aircraft,
The above-mentioned attack bullet firing process is a process in which the enemy aircraft launches a new attack bullet toward the position where the random displacement at the current position of the own aircraft is given.
A method for processing a shooting game.
画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理装置であって、
所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成手段と、
自機が、上記自機の各移動先の候補へ移動する途中の各位置において、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定手段と、
上記衝突判定手段において衝突しないと判定された場合には、自機が上記衝突判定過程において衝突しないと判定された上記自機の各移動先の候補へ移動する途中の位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が上記衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する到達時間差計算手段と、
上記差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、上記衝突しないと判定された位置を攻撃目標位置とする攻撃目標位置判定手段と、
上記攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる攻撃発射手段と、
を有することを特徴とするシューティングゲーム処理装置。
A shooting game processing device that displays its own aircraft and enemy aircraft on the screen, moves itself by an operation of selecting W types of actions, and fights enemy aircraft that attack itself.
Own-device movement pattern generation means for generating candidates for each destination of the own device that performs an action that moves only for a predetermined time (hereinafter referred to as action unit time T);
A collision determination means for determining whether or not the enemy aircraft collides with an attack bullet that has already been fired at each position in the middle of moving to the respective destination candidates of the own aircraft;
Necessary for moving to a position in the middle of moving to each destination candidate of the own aircraft determined to not collide in the collision judging process when the collision judging means judges that no collision occurs Arrival time difference calculating means for calculating the absolute value of the difference between the time required to move to the position where the attacking bullet newly fired by the enemy aircraft is determined not to collide, and
It is determined whether or not the absolute value of the difference is smaller than a predetermined value, and when the absolute value of the difference is smaller than the predetermined value, the attack target position having the position determined not to collide as the attack target position Position determination means;
Attack bullet launching means for launching a new attack bullet to the enemy aircraft toward the attack target position,
A shooting game processing apparatus comprising:
画面上に自機と敵機を表示し、W種類の行動を選択する操作によって自機を移動させて、自機に攻撃を加えてくる敵機と闘うシューティングゲーム処理プログラムであって、
所定の時間(以下、行動単位時間Tとする。)だけ移動する行動をD回行う自機の各移動先の候補を生成する自機移動パターン生成過程と、
自機が、上記自機の各移動先の候補へ移動する途中の各位置において、敵機が既に発射した攻撃弾と衝突するかどうかを判定する衝突判定過程と、
上記衝突判定過程において衝突しないと判定された場合には、自機が上記衝突判定過程において衝突しないと判定された上記自機の各移動先の候補へ移動する途中の位置へ移動するのに必要な時間と、敵機が新たに発射する攻撃弾が上記衝突しないと判定された位置へ移動するのに必要な時間との差の絶対値を計算する到達時間差計算過程と、
上記差の絶対値が所定の値よりも小さいかどうかを判定し、その差の絶対値が所定の値よりも小さい場合には、上記衝突しないと判定された位置を攻撃目標位置とする攻撃目標位置判定過程と、
上記攻撃目標位置へ向けて敵機に新たな攻撃弾を発射させる攻撃弾発射過程と、
をコンピュータに実行させるためのシューティングゲーム処理プログラム。
It is a shooting game processing program that displays an own aircraft and enemy aircraft on the screen, moves the aircraft by an operation of selecting W types of actions, and fights enemy aircraft that attack the aircraft.
A self-movement pattern generation process for generating candidates for each movement destination of a self-machine that performs an action that moves only for a predetermined time (hereinafter referred to as action unit time T);
A collision determination process for determining whether or not the enemy aircraft collides with an already-launched attack bullet at each position in the middle of moving to each of the destination candidates of the aircraft,
Necessary to move to a position in the middle of moving to each destination candidate of the aircraft that is determined not to collide in the collision determination process when it is determined that there is no collision in the collision determination process Time difference calculation process for calculating the absolute value of the difference between the time required to move to the position where it is determined that the attacking bullet newly launched by the enemy aircraft does not collide, and
It is determined whether or not the absolute value of the difference is smaller than a predetermined value, and when the absolute value of the difference is smaller than the predetermined value, the attack target position having the position determined not to collide as the attack target position Position determination process;
An attack bullet launching process in which a new attack bullet is fired at the enemy aircraft toward the attack target position,
A shooting game processing program for causing a computer to execute.
請求項13記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the shooting game processing program according to claim 13 is recorded.
JP2006155358A 2006-06-02 2006-06-02 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof Expired - Fee Related JP4804230B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006155358A JP4804230B2 (en) 2006-06-02 2006-06-02 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006155358A JP4804230B2 (en) 2006-06-02 2006-06-02 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof

Publications (2)

Publication Number Publication Date
JP2007319560A JP2007319560A (en) 2007-12-13
JP4804230B2 true JP4804230B2 (en) 2011-11-02

Family

ID=38852831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006155358A Expired - Fee Related JP4804230B2 (en) 2006-06-02 2006-06-02 Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof

Country Status (1)

Country Link
JP (1) JP4804230B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058059A (en) 2011-09-08 2013-03-28 Sony Corp Information processing apparatus, information processing method and program

Also Published As

Publication number Publication date
JP2007319560A (en) 2007-12-13

Similar Documents

Publication Publication Date Title
Uriarte et al. Game-tree search over high-level game states in RTS games
JP2023169298A (en) Method for controlling virtual object, device, terminal, and computer program
US8257173B2 (en) System and method for driving artificial intelligence (AI) characters having continuous reevaluation of current goals and navigation path
KR101220071B1 (en) Combining speculative physics modeling with goal-based artificial intelligence
US20150231509A1 (en) System, Method, and Apparatus for Smart Targeting
JP7553178B2 (en) Method, apparatus, device and computer program for displaying target marks
Świechowski et al. Combining utility ai and mcts towards creating intelligent agents in video games, with the use case of tactical troops: Anthracite shift
Michalski et al. Smaclite: A lightweight environment for multi-agent reinforcement learning
JP4804230B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
CN117298580A (en) Virtual object interaction method, device, equipment, medium and program product
JP4976754B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
JP4996275B2 (en) Difficulty determination method, device, program
JP4804224B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
JP4804226B2 (en) Shooting game processing method, apparatus thereof, program thereof, and recording medium thereof
CN117753010B (en) Simulation methods, devices, and storage media for anti-aircraft missile target locking
JP4804222B2 (en) Method for determining difficulty level of shooting game, apparatus thereof, program thereof, and recording medium thereof
Williamson et al. Heatmap Weighted A* Algorithm for NPC Pathfinding and Graph Switching
KR102479931B1 (en) Game providing device, game providing method and computer program for providing reward corresponding to a predicted probability index
JP4804253B2 (en) Self-operation control method, apparatus, program, and recording medium for shooting game
CN118022330A (en) Virtual object interactive method, device, equipment, medium and program product
JP2026041177A (en) Information processing program, information processing method, and information processing device
WO2025232365A1 (en) Object control method and apparatus in virtual scene, device, medium, and product
WO2025241741A1 (en) Virtual character interaction method and apparatus, device, medium and product
Llano Chamorro Artefacts of Power
Wang et al. Adopting scouting and heuristics to improve the ai performance in starcraft

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110506

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110802

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110809

R150 Certificate of patent or registration of utility model

Ref document number: 4804230

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees