JP4211234B2 - GAME SERVER DEVICE AND GAME TERMINAL DEVICE - Google Patents

GAME SERVER DEVICE AND GAME TERMINAL DEVICE Download PDF

Info

Publication number
JP4211234B2
JP4211234B2 JP2001124583A JP2001124583A JP4211234B2 JP 4211234 B2 JP4211234 B2 JP 4211234B2 JP 2001124583 A JP2001124583 A JP 2001124583A JP 2001124583 A JP2001124583 A JP 2001124583A JP 4211234 B2 JP4211234 B2 JP 4211234B2
Authority
JP
Japan
Prior art keywords
game
information
advancing
user
time
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
JP2001124583A
Other languages
Japanese (ja)
Other versions
JP2002315968A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2001124583A priority Critical patent/JP4211234B2/en
Publication of JP2002315968A publication Critical patent/JP2002315968A/en
Application granted granted Critical
Publication of JP4211234B2 publication Critical patent/JP4211234B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークを介して将棋、囲碁、チェス等の対戦ゲームを行うサービスを提供するためのゲームサーバ装置及びゲーム端末装置に関する。
【0002】
【従来の技術】
近年では、離れた場所にいる人間同士で将棋、囲碁、チェス等のゲームを、電話回線、インターネットなどの通信手段を介して遠隔対戦(対局)するシステムとして、対戦者が使用する端末がそれぞれネットワークサーバに接続し、このサーバを仲介して対戦を行う形態、または対戦者が利用する端末同士で直接接続して対戦を行うピア・ツー・ピアの形態でのネットワーク対戦システムがあり、商用・非商用で様々なサービスが実用段階にある。
【0003】
また、人間とコンピュータとの間で対戦を行うため対戦プログラムも実用段階にあり、ゲームの種類によっては人間以上にうまく対戦するプログラムが数多く存在する。対戦プログラムの構成要素として、Min−Max法、枝刈り、評価関数などの技術が用いられている。
【0004】
【発明が解決しようとする課題】
しかしながら、従来のネットワーク対戦システムは、対戦者が対戦の最初から最後まで互いに対戦相手につきあうことが対戦を成立させる前提であり、対戦者にとっての利便性、使用感の上で以下に述べる問題点があった。
【0005】
第1の問題点は、対戦中に急用ができたとしても、端末の前を離れると時間切れで負けになったり、相手に不満を持たれたりすることがある。
第2の問題点は、対戦の経過により勝敗が決しているのにもかかわらず、敗者となる対戦相手が投了せずに着手を続ける場合には、その着手に対応し続けなければならず、時間の無駄になることである。
【0006】
第3の問題点(第2の問題点の特殊な場合とも捉えられる)は、ゲームの実質上の終了局面が、ルール上必ずしも次以下の着手が不可能ではない局面である時、持ち時間の残りの多い側が、相手の持ち時間切れを期待して着手を続け、盤面状態で負けている側が勝ってしまうことが可能であることである。具体例としては、将棋において必死をかけられた後の無意味な王手連続、チェスにおいて勝つための最低駒数に不足していても指し続ける、囲碁において相手の確定地の中に自殺手を打つなどの行為が相当する。端末を操作するために一定の時間を必要とする対戦ゲームでは生じやすい問題であるが、潔さを尊ぶモラルの問題も関係して利用者間のトラブルになりやすい。
【0007】
また、第4の点として(問題点とはいえないまでも)、ネットワーク対戦システムで、特定の決まりきった戦形に進行する場合、一手一手決まりきった序盤手順を入力する必要があり、手順入力の自動化は考慮されておらず、計算機システムの特性を最大限には利用していなかった。
【0008】
このように従来のシステムでは、対戦を開始してから対戦の最後まで対戦相手に対応しなければならず、前述した第1〜第4の問題点にあるように、対戦の本質的な部分以外での負担が非常に大きく、ネットワーク対戦の利用の障害となるおそれがあった。
【0009】
本発明は、前記のような問題に鑑みてなされたもので、通信手段を介した相手と対戦ゲームをする利用者による操作を代行する機能を設けて利用者の負担を軽減することが可能なゲームサーバ装置及びゲーム端末装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明は、通信手段を介して接続された複数の利用者端末に対戦ゲームを行わせるゲームシステムに用いられるゲームサーバ装置であって、前記利用者端末から取得した対戦ゲームを進行させるための情報に従って対戦ゲームを進行させる通常モード処理手段と、予め編集構成された対戦ゲームを進行させるための情報が順に登録された第1格納手段と、前記利用者端末から取得した対戦ゲームを進行させるための情報が前記第1格納手段に登録された情報の順に従う場合に、前記第1格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第1情報生成手段と、前記第1情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、前記利用者端末からの設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段とを具備したことを特徴とする。
また本発明は、通信手段を介して接続された複数の利用者端末に対戦ゲームを行わせるゲームシステムに用いられるゲームサーバ装置であって、前記利用者端末から取得した対戦ゲームを進行させるための情報に従って対戦ゲームを進行させる通常モード処理手段と、過去に行われた対戦ゲームにおける各利用者端末から取得した情報が順に登録された第2格納手段と、前記利用者端末から取得した対戦ゲームを進行させるための情報が前記第2格納手段に登録された情報の順に従う場合に、前記第2格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第2情報生成手段と、前記第2情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、前記利用者端末からの設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段とを具備したことを特徴とする。
また本発明は、通信手段を介して接続された他のゲーム端末装置との間で対戦ゲームを行うゲーム端末装置であって、ユーザからの情報入力に基づき対戦ゲームを進行させる通常モード処理手段と、予め編集構成された対戦ゲームを進行させるための情報が順に登録された第1格納手段と、前記他のゲーム端末装置から取得した対戦ゲームを進行させるための情報が前記第1格納手段に登録された情報の順に従う場合に、前記第1格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第1情報生成手段と、前記第1情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、前記ゲーム端末装置における設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段と、前記振り分け手段によって選択されたゲームを進行させるための情報を前記通信手段により送信する送信手段とを具備したことを特徴とする。
また本発明は、通信手段を介して接続された他のゲーム端末装置との間で対戦ゲームを行うゲーム端末装置であって、ユーザからの情報入力に基づき対戦ゲームを進行させる通常モード処理手段と、過去に行われた対戦ゲームにおけるゲームを進行させる情報が順に登録された第2格納手段と、前記他のゲーム端末装置から取得した対戦ゲームを進行させるための情報が前記第2格納手段に登録された情報の順に従う場合に、前記第2格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第2情報生成手段と、前記第2情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、前記ゲーム端末装置における設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段と、前記振り分け手段によって選択されたゲームを進行させるための情報を前記通信手段により送信する送信手段とを具備したことを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
図1は本発明の実施の形態に係わるネットワーク対戦システムの構成を示すブロック図である。図1に示すように、利用者端末10(利用者端末10−1,10−2)は、公衆網14を介してホスト装置16と接続され、ホスト装置16が提供する将棋、囲碁、チェスなどの対戦(対局)を通信回線を介した相手と行うことができる対戦サービスの他、各種サービスの提供を受けることができる。利用者端末10は、例えば通信回線を介した相手と将棋ゲームの対局を行うための専用端末(対戦ゲーム装置)として構成され、ホスト装置16を介して将棋ゲームなどの対局を行うことができる。なお、パーソナルコンピュータやPDA(personal digital assistant)などによって対局プログラム(対戦プログラム)を実行することで、ゲーム専用端末の利用者端末10と同様の機能を実現することも勿論可能である。以下、将棋ゲームを行う場合を例にして説明する。また、公衆網14は、パケット交換網であり、例えばISDN(Integrated Services Digital Network)が使用されるものとする。
【0012】
図1に示すように、利用者端末10は、メモリ20、CPU21、LCD(Liquid Crystal Display)22、タッチパネル23、モデム24が、それぞれI/F回路を介して相互にバスに接続される。
【0013】
メモリ20は、CPU21によって実行される各種制御プログラムやデータ等が格納されるものであり、将棋ゲームを実現するための対局プログラムや通信制御用プログラムの他、各種データなどを含んでいる。なお、利用者端末10は、メモリ20以外にもプログラム、データ等が記録される磁気的、光学的記録媒体、もしくは半導体メモリで構成される記録媒体を設けることもできる。記録媒体は、記録装置に固定的に設けたもの、もしくは着脱自在に装着するものである。また、記録媒体に記録されるプログラム、データ等は、通信回線等を介して接続された他の機器から受信して記録する構成にしても良く、さらに、通信回線等を介して接続された他の機器側に記録媒体を備えた記録装置を設け、この記録媒体に記録されているプログラム、データを通信回線を介して使用する構成にしても良い。
【0014】
CPU21は、メモリ20に格納された各種制御プログラムやデータに従って各種機能を実現するもので、将棋ゲームなど対局ゲームや通信を実行するための機能などを実現する。本実施形態における利用者端末10では、対局を行う場合に利用者からの情報入力によって対局ゲームを進行する通常モードの他に、利用者からの要求あるいは対局が特定の状態となった場合に実行される、予め用意された着手選択アルゴリズムによって利用者からの情報入力なしに対局を進行させるエージェントモード(思考エージェントモード、定跡エージェントモード、トレースエージェントモード)が用意されている。
【0015】
LCD22は、将棋ゲームを行う上で必要な各種の情報を表示するもので、将棋盤面と接続ボタン、対局要求ボタン、終了ボタンなどの基本的な機能ボタンと対局ゲームの動作モード(通常モード、エージェントモード)を切り替えるための切り替えボタン、手番・時間経過などの情報を表示する。
【0016】
タッチパネル23は、端末に対する動作を規定するためのボタンや将棋ゲーム実行中の駒を置くべき位置を指定するために使用される。
タッチパネル23とLCD22とは、積層一体型に構成されて表示入力部を構成しており、LCD22によって表示された対象物をペンなどによって直接的に指示することで、該当する座標データを入力することができる。
モデム24は、公衆網14を介して通信を行うためのもので、対戦を行うために接続要求があった場合に、ホスト装置16に対してダイアルアップする。
利用者端末10のメモリ20に格納される対局プログラムは、タッチパネル23に対する操作及びモデム24からの対局相手の着手情報コマンド受信によりイベント駆動する。接続ボタンがタッチされたというイベントを検知すると、モデム24からホスト装置16にダイアルアップし、データリンクを確立する。将棋盤面の領域内がタッチされたというイベントを検知すると、そのタッチされたポイントから着手座標を算出し、その座標データをもとに自分の着手をLCD22の該当ポイントに表示すると共にに、着手座標データを着手情報コマンドとしてモデム24に送出し、モデム24を通じてホスト装置16に送信する。また、モデム24が対局相手の利用者端末10からの着手情報コマンドを受信したイベントが発生すると、着手情報から着手座標データ(駒コード)を取得し、相手の着手をLCD22の該当ポイントに表示する。その他の機能ボタンがタッチされると、該当するコマンド文字列をホスト装置16に対して送出する。
【0017】
また、図1に示すように、ホスト装置16は、サーバ装置30(通信ゲーム装置)、アクセスルータ34を有して構成されている。サーバ装置30は、公衆網14を介して接続された利用者端末10に対して各種のサービスを提供するもので、例えば端末間での将棋ゲームの対局の制御や対局に関する各種情報(勝敗記録、段級、棋譜)の提供などを行う。アクセスルータ34は、サーバ装置30と公衆網14を介した利用者端末10とを接続するためのもので、TCP(transmission control protocol)/IP(internet protocol)及びイーサネット(登録商標)によって接続する。
【0018】
サーバ装置30は、各種の記録媒体に記録されたプログラムを読み込み、この読み込んだプログラムによって動作が制御されるコンピュータによって構成されるもので、CPU40、メモリ41、記録装置42、イーサネット(登録商標)インタフェース(I/F)43がバスを介して相互に接続されている。
【0019】
CPU40は、メモリ41に格納された各種制御プログラムやデータに従って各種機能を実現するもので、対局プログラム(対戦プログラム)を実行することで将棋ゲームなどの対戦サービスを実現する。本実施形態では、利用者端末10から受信した利用者からの要求に応じた動作モード、すなわち利用者からの情報入力によって対局ゲームを進行する通常モードと、着手自動選択アルゴリズムを利用して着手情報を演算によって生成して対局ゲームを進行させるエージェントモード(思考エージェントモード、定跡エージェントモード、トレースエージェントモードを含む)による処理を実行する。思考エージェントモードは、事実上終局と判定した時、それ以降、勝者側の持ち時間(制限までの残り時間)が所定値以下(対局相手による持ち時間切れを期待した無意味な着手が続けられた場合に待ち時間切れとなる可能性のある僅かな時間)になった場合に、対局を代行し着手自動選択モジュールにより瞬時に着手を決定して持ち時間を消費しないで進行し、持ち時間切れとならないように正常な終局ができるようにするためのモードである。定跡エージェントモードは、予め定跡手順を編集して用意しておけば、対局相手がその定跡手順に従う着手をする間は自動的に定跡手順に従って対局を進行させ、指定の定跡手順が完了するか、相手が定跡手順外の着手を選択した時に通常モードに復帰するモードである。トレースエージェントモードは、初手ないし指定時点から有効となり、以前の記録手順と同じ手順で進行している間(特に同一の相手と連続して対局する時)、前回の勝者側(先手後手は入れ替わっていても良く形が同じ側)を前回と同じ着手により自動的に対局を進行させ、敗者側が前回と異なる着手を選択した時に通常モードに復帰するモードである。
【0020】
イーサネット(登録商標)I/F43は、アクセスルータ34と接続するためのインタフェースである。
【0021】
メモリ41は、CPU40によって実行される各種制御プログラムやデータ等が格納されるものであり、対戦サービスを提供するための対局プログラム(通常モード、エージェントモードのそれぞれに対応する)や通信制御プログラムの他、対局を行う利用者端末10間で送受信される着手情報コマンド(ゲーム情報)や対局状況を表す局面状態データなど各種データなどが格納される。着手情報コマンドと局面状態データの詳細については後述する(図2、図3)。
【0022】
記録装置42は、CPU40により実行される各種プログラム42aの他、対戦サービスのために利用される利用者データベース42b、定跡データベース42cが格納される。利用者データベース42bと定跡データベース42cの詳細については後述する(図4、図5)。なお、記録装置42は、磁気的、光学的記録媒体、もしくは半導体メモリなどで構成される記録媒体が設けられている。記録媒体は、記録装置に固定的に設けたもの、もしくは着脱自在に装着するものである。また、記録媒体に記録されるプログラム、データ等は、通信回線等を介して接続された他の機器から受信して記録する構成にしても良く、さらに、通信回線等を介して接続された他の機器側に記録媒体を備えた記録装置を設け、この記録媒体に記録されているプログラム、データを通信回線を介して使用する構成にしても良い。
【0023】
図2には、対局をする利用者端末10間で送受信される着手情報コマンドの構造体の一例を示している。図2に示すように、着手情報コマンドには、盤面上の着手位置を示す水平座標、垂直座標の各データ、何れの駒についての着手であるかを示す駒コード、その他の付加情報が含まれている。
【0024】
例えば、将棋ゲームで「7六歩」(歩の駒コード=1とする)は(7,6,1,0)によって表される。付加情報には、着手座標と駒コードだけでは表せない情報がある時に、それらをビットフィールドに書くものとする。例えば、最上位ビット=1の時は「投了」を示したり(この時、座標データと駒コードは無意味であるのでなんでも良い)、それ以外のビットを用いて将棋で複数の同一コードの駒が同一座標に動ける場合に区別するために右・左など表したりするものとする。
【0025】
図3には、サーバ装置30において対局状況を管理するための局面(盤面)状態データの構造体の一例を示している。図3に示すように、局面状態データには、現在の手番が何れの利用者端末10側であるかを示す手番(先手番/後手番)、盤面(9×9)の格子による各枠に着手された駒についての格子情報(駒の種類を示す駒コード、駒が先手と後手の何れ側に所属しているかを示す所属コード)([0][0]〜[8][8])、持ち駒についての持ち駒情報(持駒の種類を示す駒コード、持駒が先手と後手の何れ側に所属しているかを示す所属コード)([0]〜[38])が含まれている。
【0026】
例えば、格子情報[7][7]の値が(1,0)である場合、盤面7七の地点に駒コード1(「歩」)、所属0(先手番の駒)の駒があることを表す。ここで、先手番として「7六歩」、(7,6,1,0)の着手があった場合、7七から7六に「歩」が動いたことになるので、格子情報[7][7]の値を(0,0)、格子情報[7][6]の値を(1,0)に更新する(駒コード0は空を表す)。
【0027】
図4は、記録装置42に格納される利用者データベース42b(DB)のレコード構造の一例を示している。利用者データベース42bは、対戦サービスを利用する利用者に関する情報を利用者ごとに登録するためのもので、利用者を識別するための利用者ID(整数)、利用者(利用者端末)のゲームに対する強さを表すレーティング値(整数)(第3格納手段)、定跡エージェントモードを有効とするか否かを示す定跡データベース使用フラグ(真偽2値)、トレースエージェントモードを有効とするか否かを示す前回対局トレースフラグ(真偽2値)、前回勝敗(先手勝ち、後手勝ち、引き分けの3値)、前回行われた対局(ここでは30手まで)の着手情報からなる前回対局棋譜([0]〜[29])(第2格納手段)、平均着手所要時間(着手時間総和、サンプル総数)([0]〜[3])の各フィールドからなる。利用者データベース42bのフィールドのうち前回対局棋譜の構造は、初手から順に着手情報を連結したものである。また、平均着手所要時間(配列[0]〜[3])は、対戦ゲームを進行するために利用者(利用者端末10)が要する消費時間傾向を表すための情報であり、残り時間が10分以上ある場合、残り時間が5〜10分の場合、残り時間が3〜5分の場合、残り時間が3分未満の場合の4段階にわけて、利用者の過去に対局した際の、残り時間と一手ごとの平均消費時間の関係をテーブル化したものである。平均着手所要時間は、着手時間総和/サンプル総数で算出できる。前回対局棋譜[0]〜[29]は、0,2,4…番目が先手番の着手、1,3,5…が後手番の着手を示している。初手から30手のみ記録するようになっている。
【0028】
図5は、記録装置42に格納される定跡データベース42c(DB)のレコード構造の一例を示している。定跡データベース42c(第1格納手段)は、予め編集して構成された対戦ゲームを進行させる情報が順に登録されたもの、すなわち定跡の着手が順に登録されたものであって、各レコードには、図5に示すように、通し番号(整数)、自着手情報(着手座標データや駒コードから成る構造体)、相手着手情報a〜c(各々着手情報の構造体)、後続通し番号フィールドa〜c(各々整数)が含まれている。定跡データベース42cは、自着手と同じ自着手情報が登録されたレコードが選択され、対局相手からの着手情報が相手着手情報a〜cにある三種類の中の何れかであれば、その相手着手に対応する後続通し番号フィールドが示す通し番号のレコードを検索していくことにより、自着手が自動的に選択できるように構成されている。例えば、定跡データベース42cに登録される定跡を表す情報は、利用者の操作によって編集された情報、または典型的な既存の情報であるものとする。後続通し番号が0に到達した場合は、以後の手順が定跡データベース42cには収録されていない、すなわち定跡終了を示す。
【0029】
定跡データベース42cに格納される各レコードには通し番号(J)を設定し、先手番初手の通し番号を1、後手番初手(2手目)を2、終了を0、その他を3以上の数から重複しないように適当に設定する。なお、後手番初手のレコードの自着手情報は参照しない(参照しても無意味である)。また、後続通し番号0に対応する相手着手情報への設定もしなくても良い(相手着手a〜cにない手の時も定跡終了とするため)。
【0030】
例えば、先手番初手「7六歩」に対して定跡「3四歩」「8四歩」がある場合、対応するレコード値は(1,(7,6,1,0),(3,4,1,0),10,(8,4,1,0,),20,(0,0,0,0),0,)となる。通し番号10のレコードには「3四歩」に対する自着手などが、通し番号20のレコードには「8四歩」に対する自着手などが同様に登録されている。
【0031】
次に、本実施形態におけるネットワーク対戦システムの動作について説明する。
はじめに、利用者端末10(利用者端末10−1,10−2)における動作の概略について、図6(a)に示すフローチャートを参照しながら説明する。
利用者は、タッチパネル23をタッチすることにより利用者端末10を操作する。利用者端末10のCPU21は、タッチパネル23に対する操作、及びモデム24からの対局相手の着手情報コマンドの受信に応じて、メモリ20に記録されたプログラムに従ってイベント駆動する。
【0032】
接続ボタンがタッチされたというイベントを検知すると、モデム24からホスト装置16にダイアルアップし、公衆網14を介したホスト装置16とのデータリンクを確立する(ステップA2)。さらに、対局要求ボタンがタッチされたことを検出すると、ホスト装置16により対局相手がアサインされて対局が始まる(ステップA3)。CPU21は、LCD22においてゲームの盤面を表示させる。先手後手が決まり、先手番となった方から、端末の盤面をタッチして着手を送信する。
【0033】
将棋盤面の領域内がタッチされたというイベントを検知すると、CPU21は、そのタッチされたポイントから着手座標を算出し、自分の着手(駒)をLCD22の該当ポイントに表示するとともに、着手座標を着手情報コマンドによりモデム24を通じてホスト装置16に送信する。また、その他のボタンがタッチされると、CPU21は、該当するコマンドをホスト装置16に対して送信する。一方、モデム24により着手情報コマンドを受信するイベントが発生すると、CPU21は、着手情報コマンドから相手の着手座標と駒コードを取得し、これをもとに相手の着手(駒)をLCD22の該当ポイントに表示する。
【0034】
本実施形態における利用者端末10では、ホスト装置16を通じて対局を行う場合に、利用者からのモード設定ボタンに対する操作により定跡エージェントモードあるいはトレースエージェントモードを設定することができる(ステップA1)。この場合、利用者端末10は、ホスト装置16との接続時に設定モードの登録を実行し、この設定モードによって利用者による着手を必要とせずに対戦が進められるようにする。また、利用者は、対戦の内容が実質的に勝ちが決まっているような場合(終局状態)に、思考エージェントモード切替ボタンへの操作によって思考エージェントモードを設定することにより(ステップA4)、残り持ち時間を消費することなく対局を進行させることができる。利用者端末10は、思考エージェントモードが設定されたことをホスト装置16に通知し(ステップA5)、この設定モードによって対戦が進められるようにする。なお、思考エージェントモードは、再び思考エージェントモード切替ボタンが操作されることにより、利用者が希望する任意のタイミングで解除することもできる。また、思考エージェントモードは、終局状態で残り持ち時間が予め決められた所定値以下、例えば持ち時間の残りが10秒を切った場合には自動的に設定されるものとする。
【0035】
次に、サーバ装置30における動作の概略について、図6(b)に示すフローチャートを参照しながら説明する。ここでは、利用者端末10−1と利用者端末10−2との間で行われる対局をサーバ装置30が仲介するものとして説明する。
【0036】
サーバ装置30は、TCP/IPの特定のTCPポート番号の接続要求パケットの受信を待ち、接続要求がある毎にサーバメイン処理を子プロセスとして起動してそのコネクションを処理する(ステップB1,B2)。従って、サーバ装置30は、複数のコネクションを並行して処理することができる。コネクションは利用者端末10が切断するまで維持され、各子プロセスもその間存続する。以下の説明では、利用者端末10−1に対する処理を主にして説明する。
【0037】
コネクションを処理する子プロセスの処理内容は、以下のように構成することができる。
子プロセスは、繰り返し、コネクションが確立された利用者端末10−1についてTCP/IPソケットから受信したコマンドを読み出して解釈し、またプロセス間通信チャネルから受信した対局相手(利用者端末10−2)側からのコマンドを読み出して解釈する。また、子プロセスは、共有メモリ空間によって実現した、1対1で双方向のストリームとして入出力できるプロセス間通信チャネルを、プロセス間通信チャネルID番号で指定して使用することができる。
【0038】
TCP/IPソケットから受信した対局要求コマンドには利用者IDが含まれる。対局要求コマンドを受け取ると、利用者IDをキーとして利用者データベース42bを検索し、該当する利用者のレコード(以下、利用者レコードUR)の対局ステータスフィールドを1(対局参加問い合わせ中)に更新する。続いて、対局ステータスが2(対局相手待ち)の利用者レコードURを検索し、最初に見つかった利用者レコードURに該当する利用者を対局相手として選び、空きのプロセス間通信チャネルIDを取得し、前記の利用者レコードURと対局相手の利用者レコードURをともに対局ステータスフィールドを3(対局中)、プロセス間通信チャネルIDを取得したプロセス間通信チャネルIDに更新する。この際、乱数によって先手・後手番を決定する。対局相手のレコードが見つからなかった場合は、前記の利用者レコードURの対局ステータスフィールドを2(対局相手待ち)に更新する。なお、前述した何れの状態にもない場合(対局終了後など)には、対局ステータスが4に設定されているものとする。
【0039】
利用者データベース42bから得た利用者レコードURの内容は、ローカル作業メモリ中にコピーしておき、以下に説明する各処理の参照に用いる。また、対局を開始する前に実行される対局前処理によって設定モードの登録を行う(ステップB3)。すなわち、利用者端末10−1におけるエージェントモードの設定に応じて、定跡エージェントモードあるいはトレースエージェントモードを有効化する。なお、トレースエージェントモードについては、利用者データベース42bから得られる利用者レコードURの前回対局トレースフラグ(エージェントモードの設定)が真であり、かつ、自分が先手番であり前回勝者が先手番であったか、または自分が後手番であり前回勝者が後手番であった場合にトレースエージェントモードを有効化するもまとする。また、思考エージェントモードは初期段階では無効化されている。各モードについては子プロセス毎にローカル作業メモリ中にフラグが設けられて管理される。
【0040】
以下、利用者端末10−1から受信したコマンドを識別し、その識別結果に応じたイベントを実行する。自着手ではない(利用者端末10−2側における着手)場合に実行する相手着手受信処理(ステップB4,B5)では、相手着手確定処理(図8)、自着手処理振り分け処理(図9)、定跡エージェント処理(図10)、トレースエージェント処理(図11)、思考エージェント処理(図12)、終局後処理(図14)などの各種処理が実行される。また、自着手の場合に実行する自着手受信処理(ステップB4,B6)では、自側着手確定処理(図11)、終局後処理(図14)、着手自動選択処理(図15、図1
7)などの各種処理が実行される。各処理の詳細については後述する。
【0041】
まず、相手着手受信処理について、図7に示すフローチャートを参照しながら説明する。
サーバ装置30は、対局相手からの着手情報コマンドについて、利用者レコードURの対局ステータスフィールドが3(対局中)であるときに限って処理を行う(ステップC1)。サーバ装置30は、プロセス間通信チャネルから対局相手から着手情報コマンドを受信すると、相手着手確定処理を実行して(ステップC2)、同じ内容をTCP/IPソケットに(利用者端末10−2に)送出する(ステップC3)。これにより、利用者端末10−2において対局相手の着手を表示できるようにする。そして、対局相手の着手に対応する着手を決定するために自着手処理振り分け処理を実行する(ステップC4)。
【0042】
ここで、相手着手確定処理(ステップC2)の詳細について、図8に示すフローチャートを参照しながら説明する。
サーバ装置30は、対局相手から受信した着手情報コマンドが投了を示していない場合には(ステップE1)、着手情報の内容に従って局面状態データを更新し(ステップE4)、さらに今回の相手着手によって終局状態となるかを判別するために終局判定処理を実行する(ステップE5)。なお、終局判定処理では、局面状態データに登録されたデータをもとに、終局状態判定モジュールによって、実質的に終局状態(通常の着手がされることで勝敗が決定される状態)となっているか否かを判定する。
【0043】
なお、終局状態判定モジュールは、ゲームの種類により、それぞれのルールにしたがって構成され、どの程度の判定ができるかは様々である。ここでは、最も単純な構成例として、チェスの場合に有効な一つの例を述べると、片方の対局車の盤面に残っている駒がKingのみであり、もう片方の対局者が盤面にKing以外にQueen,Rookの何れかが残っている場合(Kingが直ちにRookを取れる場合を除く)、これを判別する手段は自明に構成でき、この時、「事実上終局状態」であり、Kingのみの対局者を「事実上敗者」、もう片方を「事実上勝者」と判定する。ルール上はさらに手を進めることは可能であるが、Kingのみの対局者はいくら指し続けても勝つことはできず、熟練した対局者間では事実上引き分けの可能性もないと見なしてよいことが知られているからである(さらに判定範囲の広い方法も構築できるが、ここでは説明を単純化している)。
【0044】
終局判定処理の結果、終局状態にあると判定された場合には、終局状態であることを設定すると共に(事実上終局を示すフラグE=1に設定する。それ以外の場合にはE=0)(ステップE6)、現在手数を表す変数Nを更新(+1)する(ステップE7)。そして、利用者端末10−1において相手着手を表示させる(ステップE8)
一方、対局相手からの着手情報コマンドが投了を示している場合(ステップE1)、サーバ装置30は、勝局時処理を実行する。
【0045】
勝局時処理では、利用者データベース42bの該当利用者レコードURのレーティング値を対局に勝ったことに応じて更新するためにレーティング増加分(r:レーティング値差分)を算出する(ステップE2)。レーティング値は、利用者の操作によらずエージェントモードにより着手を自動的に決定する場合に参照されるもので、ゲームに対する利用者の強さのレベルを表している。すなわち、対局の勝ちに応じてレーティング値を上げることで、利用者のゲームに対する強さに連動するようにエージェントのレベル(棋力)を上げることができる。従って、利用者にとっては、エージェントが自分とともに強くなっていくことに達成感を得ることができるようになる。
【0046】
例えば、レーティング増加分は、16+0.04×(対局相手のレーティング値−利用者のレーティング値)により算出するものとする。なお、レーティング値の算出方法については、対局の勝敗に応じて強さのレベルを表すことができれば他の方法を用いることも可能である。
【0047】
また、サーバ装置30は、レーティング値の増加分を算出した後、終局後処理を実行する(ステップE3)。
【0048】
図14には、終局後処理の動作についてのフローチャートを示している。終局後処理では、まず該当利用者レコードURのレーティング値フィールドに格納されている現在のレーティング値に、ステップE2において算出したレーティング増加分(r)を加算する(ステップL1)。
【0049】
また、利用者レコードURの前回勝敗フィールドと前回対局棋譜フィールドの内容を今回の対局のものに置換すると共に(ステップL2)、対局が終了した状態にあることを示すように対局ステータスを4に更新する(ステップL3)。サーバ装置30は、こうして更新した利用者レコードURによって利用者データベース42bを更新する。なお、思考エージェントモードによる着手を使用しなかった時は、後述する自側着手受信処理において、利用者レコードURの平均着手所要時間についても更新される。
【0050】
一方、自着手処理振り分け処理(ステップC4)は、図9に示すフローチャートに示すようにして実行する。サーバ装置30は、自着手処理振り分け処理によって、相手着手に対して、エージェントモードにより次の着手を決定するか、利用者によって着手を入力させるかを振り分ける。
すなわち、定跡エージェントモード、トレースエージェントモード、あるいは思考エージェントモードの何れかが有効化されている場合には(ステップD1,D3,D5)、その有効化されたモードのエージェント処理を実行して利用者に代わって着手を決定する(ステップD2,D4,D6)。
【0051】
一方、何れのエージェントモードも有効化されていない場合には、サーバ装置30は、利用者端末10−1において利用者に着手操作を促すために「着手入力してください」のメッセージを表示させると共に(ステップD7)、着手に要する時間を計測するために着手時間タイマ計時を開始する(ステップD8)。こうして、着手毎に着手の所要時間を計時し、予め定めた持ち時間から漸次減算して残り時間を制限する。
【0052】
次に、各エージェントモードにおける処理について、図10〜図12に示すフローチャートを参照しながら説明する。
まず、図10に示すフローチャートを参照しながら、定跡エージェント処理について説明する。
【0053】
まず、サーバ装置30は、定跡データベース42cに登録された通し番号Jのレコード(以下、定跡レコードJR)を取得してメモリ41に格納する。なお、通し番号Jの初期値としては、対局開始前の前処理において先手番の場合には1、後手番の場合には2が設定されている。
【0054】
ここで、通し番号Jが1の場合、すなわち先手番初手に対応する通し番号である場合には、自着手を定跡レコードJRの自着手情報が示す着手に決定し(ステップF13)、自側着手確定処理を実行する(ステップF14)。なお、自側着手確定処理の詳細については後述する(図11)。
【0055】
一方、通し番号Jが1でない場合、すなわち先手番初手に対応する通し番号でない場合には、自着手に対する相手着手が定跡レコードJRの相手着手情報a〜cの何れかに該当するかを判別する(ステップF3)。ここで、相手着手が定跡レコードJRの相手着手情報aに該当する場合、通し番号Jに相手着手情報aと対応づけられた後続通し番号aを設定する(ステップF4)。一方、相手着手が定跡レコードJRの相手着手情報bに該当する場合、通し番号Jに相手着手情報bと対応づけられた後続通し番号bを設定し(ステップF5)、相手着手情報cに該当する場合、通し番号Jに相手着手情報cと対応づけられた後続通し番号cを設定する(ステップF6)。なお、相手着手が相手着手情報a〜cの何れにも該当しなかった場合には、対局相手が定跡と外れた着手をしたものとして、定跡エージェントモードを無効化するために通し番号Jに0を設定する(ステップF7)。
【0056】
ここで、通し番号Jの値が0の場合には(ステップF8)、定跡エージェントを無効化する(ステップF9)。そして、利用者端末10−1において定跡エージェントモードが終了したことを利用者に通知するために「定跡終了」のメッセージを表示させると共に(ステップF10)、利用者に次の着手の入力操作を促すために「着手入力してください」のメッセージを表示させて(ステップF11)、着手に要する時間を計測するために着手時間タイマ計時を開始する(ステップF12)。
【0057】
なお、通し番号Jの値が0でない場合には、自着手を定跡レコードJRの自着手情報が示す着手に決定し(ステップF13)、自側着手確定処理を実行する(ステップF14)。すなわち、対局相手が定跡レコードJRに登録された相手着手情報により示される着手をした場合には、同定跡レコードJRに登録された対応する自着手情報により示される着手を自着手とする。
【0058】
次の自着手処理振り分け処理で定跡エージェント処理を実行する際には、ステップF4〜F7において設定された後続通し番号の定跡レコードが取得されて前述と同様の処理が実行される。従って、エージェント処理では、定跡レコードに登録された相手着手情報が示す着手を対局相手がする場合には、その着手に対応する定跡による着手を自着手として対局に対応することができる。
【0059】
このようにして、定跡エージェントモードを利用することにより、対局の序盤などにおいて定跡通りに着手を進める場合には、定跡エージェントによって対局を代行させて、利用者による着手のための操作を不要とすることができる。
【0060】
ここで、自側着手確定処理について、図11に示すフローチャートを参照しながら説明する。
【0061】
サーバ装置30は、利用者レコードURの対局ステータスフィールドが3(対局中)でであり(ステップK1)、着手が投了を示していない場合には(ステップK2)、着手情報の内容に従って局面状態データを更新し(ステップK5)、現在手数を表す変数Nを更新(+1)する(ステップK6)。そして、TCP/IPソケット(利用者端末10−1)から受信した着手情報コマンドを、そのままプロセス間チャネル(利用者端末10−2)に転送すると共に(ステップK6)、利用者端末10−1において利用者が着手の更新を容易に確認できるようにするために着手更新確認表示をさせる(ステップK8)。
【0062】
一方、着手が投了を示している場合(ステップK2)、サーバ装置30は、敗局時処理を実行する。
【0063】
敗局時処理では、利用者データベース42bの該当利用者レコードURのレーティング値を対局に負けたことに応じて更新するためにレーティング減少分(r:レーティング値差分)を算出する(ステップK3)。レーティング値は、ゲームに対する利用者の強さのレベルを表すため、対局の負けに応じてレーティング値を上げることで、利用者のゲームに対する強さに連動するようにエージェントのレベル(棋力)を下げることができる。
【0064】
例えば、レーティング増加分は、16+0.04×(利用者のレーティング値−対局相手のレーティング値)により算出するものとする。なお、レーティング値の算出方法については、勝局時処理と同様にして、対局の勝敗に応じて強さのレベルを表すことができれば他の方法を用いることも可能である。
【0065】
また、サーバ装置30は、レーティング値の減少分を算出した後、終局後処理を実行する(ステップK4)。なお、終局後処理については、前述したように、図14示すフローチャートに従って実行されるものとして説明を省略する。
【0066】
次に、図12に示すフローチャートを参照しながら、トレースエージェント処理について説明する。
【0067】
まず、サーバ装置30は、現在手数Nが0である場合(ステップG1)、すなわち初手番の場合には、利用者データベース42bの利用者レコードURに登録された前回対局棋譜[0]を自着手として設定し(ステップG2)、自側着手確定処理を実行する(ステップG3)。
【0068】
また、サーバ装置30は、現在手数Nが利用者レコードURに前回対局棋譜が登録されている30未満であって、かつ直前の対局相手の着手が前回対局棋譜[N−1]の場合(ステップG4)、すなわち利用者レコードURに登録された前回対局棋譜に従って着手がされている場合には、利用者データベース42bの利用者レコードURに登録された前回対局棋譜[N]を自着手として設定し(ステップG5)、自側着手確定処理を実行する(ステップG6)。
【0069】
一方、ステップG1,G4の何れの条件にも該当しない場合には、サーバ装置30は、トレースエージェントを無効化し(ステップG7)、利用者端末10−1においてトレースエージェントモードが終了したことを利用者に通知するために「トレース終了」のメッセージを表示させると共に(ステップG8)、利用者に次の着手の入力操作を促すために「着手入力してください」のメッセージを表示させて(ステップG9)、着手に要する時間を計測するために着手時間タイマ計時を開始する(ステップG10)。
【0070】
このようにして、トレースエージェントモードを利用することにより、前回の対局で勝った時と同じように着手を進める場合には、トレースエージェントによって前回対局棋譜をもとにして着手を代行させることができるので、利用者による着手のための操作を不要とすることができる。
【0071】
次に、図13に示すフローチャートを参照しながら、思考エージェント処理について説明する。
【0072】
まず、サーバ装置30は、利用者レコードURのレーティング値を参照して、このレーティング値が予め設定されているレベル判定に用いる基準値より大きいかを判別する(ステップH1)。ここでは、例えば基準値を1600としてレーティング値が示すレベルを判別し、基準値1600を越えていればレベル3と設定し(ステップH2)、基準値1600以下であればレベル2と設定する(ステップH3)。ここで設定されたレベルは、後述する着手自動選択処理において用いられる。また、現時点における利用者の残り持ち時間t(秒)を算出する(ステップH4)。
【0073】
ここで、サーバ装置30は、着手自動選択モジュールによる着手自動選択処理を起動し、現在の局面状態データを入力として次の自着手を決定する(ステップH5)。
【0074】
図15には、着手自動選択処理のフローチャートを示している。着手自動選択処理では、まず現在の局面状態データが示す局面から次に着手がされた場合の次局面を、可能性のある着手(全部の着手でも良いが、有力な着手に限定して処理効率を図るものとする)のそれぞれについて求め、これら複数の次局面からなる次局面集合を生成する(ステップM1)。
【0075】
さらに、次局面集合に含まれる各次局面について、次局面から次に着手がされた場合の次々局面を、可能性のある着手のそれぞれについて求め、これら複数の次々局面からなる次々局面集合を生成する(ステップM2)。
【0076】
ここで、思考エージェント処理において利用者のレーティング値をもとにして求めたレベルがレベル2を越えているか、つまり利用者のゲームに対する強さが所定レベルより高いかを判別する(ステップM3)。
【0077】
レベル2を越えている場合には、さらに次々局面集合に含まれる各次々局面について、次々局面から次に着手がされた場合の次々々局面を、可能性のある着手のそれぞれについて求め、これら複数の次々々局面からなる次々々局面集合を生成する(ステップM4)。
【0078】
図16には、前述のように局面集合が生成される様子を概念的に示すツリー構造である。図16は、レベル2に対応するツリー構造であり、現在の局面に対して次局面1〜Nが生成され、次局面1〜Nのそれぞれについて次々局面が生成されている(次局面1に対して次々局面1,1〜1,Nが生成されている)。このように、利用者のレーティング値の高低(利用者のゲームに対する強さの実績レベル)に合わせて、思考エージェントの読みの深さ(すなわち強さ)を変えることにより、思考エージェント処理により決定される着手を利用者が実際に着手した場合と同様の強さにすることができる。
【0079】
サーバ装置30は、利用者のレーティング値に応じて生成した局面集合から、予め決めた局面の評価関数によって枝刈りしながら一定の深さまで木構造に探索し、同じく評価関数によってMin−Max法を適用して最前手順(ツリーの1個の経路)を選択し(ステップM5)、その最前手順の初手を戻り値(思考エージェントが決定する着手)として設定し(ステップM6)、思考エージェント処理に戻る。
【0080】
なお、図15のフローチャートに示す着手自動選択処理では、利用者のレベルに応じた深さまでの局面集合を生成するものとしているが、必要な深さまでの局面集合を生成するために長い処理時間が必要となるなど処理負担が大きい場合には、局面集合を生成する時間を制限するようにしても良い。
【0081】
図17には、局面集合を生成する時間wを制限した着手自動選択処理のフローチャートを示している。この場合、着手自動選択処理では、予め決められた時間wが経過するまでの間、利用者のレーティング値をもとにして求められる深さレベル以内で、順次、次局面集合、次々局面集合…を生成していく(ステップN1,N2)。
【0082】
そして、予め決められた時間w(秒)が経過すると、利用者のレーティング値をもとにして求められる深さレベルまでの局面集合が生成されていなくても、その時点で局面集合の生成を終了し、図15のフローチャートに示す着手自動選択処理のステップM5,M6と同様にして、Min−Max法を適用して最前手順を選択し(ステップN3)、その最前手順の初手を戻り値(思考エージェントが決定する着手)として設定する(ステップN4)。
【0083】
ここで、思考エージェント処理では、残り持ち時間tと利用者レコードURの平均着手所要時間[0]〜[3]に応じて、着手情報コマンドを対局相手に送出するまでの待ち時間(w秒)を算出する。すなわち、平均着手所要時間[0]〜[3]には、それぞれ残り時間が10分以上ある場合、残り時間が5〜10分の場合、残り時間が3〜5分の場合、残り時間が3分未満の場合の利用者の平均着手時間が登録されているので、残り持ち時間tに応じた平均所要時間を自側着手に要する時間とすることで、実際に利用者が対局している場合と同様に持ち時間を経過させることができる。
【0084】
ただし、残り持ち時間tが10秒未満であり、かつ事実上終局を示すフラグがセット(E=1)されている場合には、待ち時間wを0(待ち時間無し)として設定する(ステップH7)。これにより、事実上負けが決まっている対局相手が、時間切れによる勝ちを狙った対応をしたとしても、残り持ち時間を消費することなく着手が進められるので、事実上勝っている対局を時間切れによって負けることを回避できる。
【0085】
また、残り持ち時間tが180秒未満である場合には、待ち時間wを利用者レコードURの平均着手所要時間[3]に登録された時間(残り時間が3分未満の場合の利用者の平均着手時間)として設定する(ステップH8)。
【0086】
また、残り持ち時間tが300秒未満である場合には、待ち時間wを利用者レコードURの平均着手所要時間[2]に登録された時間(残り時間が3〜5分未満の場合の利用者の平均着手時間)として設定する(ステップH9)。
【0087】
また、残り持ち時間tが600秒未満である場合には、待ち時間wを利用者レコードURの平均着手所要時間[1]に登録された時間(残り時間が5〜10分未満の場合の利用者の平均着手時間)として設定する(ステップH10)。
【0088】
また、残り持ち時間tが600秒以上である場合には、待ち時間wを利用者レコードURの平均着手所要時間[0]に登録された時間(残り時間が10分以上の場合の利用者の平均着手時間)として設定する(ステップH11)。
【0089】
サーバ装置30は、ステップH7〜H11の何れかの処理において設定された待ち時間wに応じてw秒待った後(ステップH12)、自側着手確定処理を実行することにより、着手自動選択処理によって決定した着手の着手情報コマンドをプロセス間チャネル(対局相手)に送信する(ステップH13)。
【0090】
このようにして、思考エージェントモードを利用することにより、対局中の任意のタイミングで着手自動選択処理(モジュール)により決定される着手により対局を代行させて、利用者による着手のための操作を不要とすることができる。利用者の利用者端末10−1では、着手自動選択処理により決定された着手がホスト装置16から送信されて、局面状態が表示されるのみとなる。着手自動選択処理では、利用者のゲームに対する強弱を表すレーティング値に応じて読みの深さを変え、また利用者の実際に対局をした場合の平均着手所要時間に応じた時間を持ち時間から消費して着手するため、思考エージェントモードの利用により対局相手に不公平感を持たせることがない。
【0091】
次に、図18に示すフローチャートを参照しながら、自側着手受信処理について説明する。
【0092】
サーバ装置30は、利用者端末10−1(利用者)からの着手情報コマンドについて、利用者レコードURの対局ステータスフィールドが3(対局中)であるときに限って処理を行う(ステップJ1)。
【0093】
着手時間タイマ計時を開始してから着手(着手情報コマンドを受信した時点)までの着手にかかった時間u(秒)を設定し(ステップJ2)、この時間uをもとに利用者の残り待ち時間t(秒)を更新する(ステップJ3)。
【0094】
ここで、残り待ち時間tに応じて、利用者レコードURの平均着手所要時間[0]〜[3]の更新を行う。
例えば、残り待ち時間tが180秒未満である場合には、利用者レコードURの平均着手所要時間[3]の着手時間総和に着手にかかった時間uを加算し、サンプル総数に1を加算する(ステップJ5)。
【0095】
また、残り待ち時間tが300秒未満である場合には、利用者レコードURの平均着手所要時間[2]の着手時間総和に着手にかかった時間uを加算し、サンプル総数に1を加算する(ステップJ6)。
【0096】
また、残り待ち時間tが600秒未満である場合には、利用者レコードURの平均着手所要時間[1]の着手時間総和に着手にかかった時間uを加算し、サンプル総数に1を加算する(ステップJ7)。
【0097】
また、残り待ち時間tが600秒未満である場合には、利用者レコードURの平均着手所要時間[0]の着手時間総和に着手にかかった時間uを加算し、サンプル総数に1を加算する(ステップJ8)。
【0098】
そして、受信した着手情報コマンドを自着手に設定し(ステップJ9)、前述した自側着手確定処理(図11)を実行する(ステップJ10)。
【0099】
こうして、自側着手受信処理において、利用者の実際の着手の際に要した時間をもとに平均着手所要時間を更新することで、思考エージェントモードにより対局を代行させる場合に、利用者が実際に対局するときと同様に持ち時間を消費するように制御することができる。
【0100】
このようにして、エージェントモードを利用して対局をすることで、利用者は、対局中に利用者端末10から離れても(情報入力をしなくても)対局が継続されるため、中座しても負けにならなず、また対局相手に不快感を与えることもない。また、対局中に利用者端末10から離れない場合であっても以前に行った対局と同様の着手をする場合や定跡に従った着手をする場合など、決まりきった着手をするのであれば、トレースエージェント、定跡エージェントに着手を代行させて単純作業的な情報入力の手間を省いて楽をすることができる。
【0101】
また、思考エージェントモードを利用した場合では、利用者の強さのレベルに応じた着手を決定するので、思考エージェントの使用に公正・公平感を持たせることができ、また対局に勝ったという実績を残すことで思考エージェントが強くなっていくので達成感を提供することができる。さらに、思考エージェントモードによる着手では、持ち時間についても、実際に利用者が対局を行った場合に消費する時間(平均着手使用時間)に応じて消費するので、思考エージェントの使用に公正・公平感を持たせ、またエージェントが対局を代行することによる不自然な早指し、後指しを防ぐこともできる。さらに、思考エージェントモードを利用することで、端末操作(着手情報の入力操作)に要する時間を利用して相手を持ち時間切れに持ち込み、終了盤面では事実上負けであるのに勝負に勝つという不自然な現象が起きる頻度を減少させることができる。特に持ち時間が切れ負け(対局を通しての使用時間が総和で制限されており一手あたりの最低時間が確保されない)制である場合に効果がある。
【0102】
なお、前述した説明では、思考エージェントモード時には、全て思考エージェントにより着手を決定させて対局を進行させるものとして説明しているが、全ての着手について自動的に進行させるのではなく、各着手あるいは所定の条件に一致する着手について利用者に確認を求めるようにし、承認の応答があった場合にこの着手によって対局を進めるようにしてもよい。この時、利用者に確認を求めた際に、予め決められた時間内に応答がなかった場合(タイムアウト時)は承認されたものと判断するようにしても良い。
【0103】
また、前述した説明では、定跡エージェントモードにおいて、定跡手順を初手からとして説明しているが、対局途中からの着手について定跡エージェントを利用できるようにしても良い。例えば囲碁の場合、対局途中で盤面の一部分のパターンが定跡(定石)のパターンと一致した時に、定跡エージェントを起動するようにしても良い。
【0104】
また、定跡データベース42cや、終局状態判定モジュール、着手自動選択モジュールをホスト装置16に設けるのではなく、利用者端末10内に設けるようにしても良い。これによれ、各エージェント処理の一部または全部を利用者端末10で処理することができる。
【0105】
また、前述した説明では、利用者データベース42bの利用者レコードURに登録される前回対局棋譜は1回の対局分だけとしているが、過去に行われた複数回分の棋譜を登録するようにしても良く、例えば過去に行われた全ての対局の棋譜を登録してトレースエージェント処理に利用するようにしても良い。その場合、定跡データベース42cと同様に木構造(グラフ構造)に構成してもよい。
【0106】
また、終局状態判定は、先読みによって行なってもよいし、対局が囲碁の場合は地の判定を用いて行なってもよい。
【0107】
また、単一のサーバ装置30によって対戦サービスを提供するのではなく、複数のサーバ装置30を設けて対戦サービスを提供する機能を分散して実行させるようにしてもよい。
また、図1に示すシステム構成では、利用者端末10と公衆網14とは有線接続されるものとしているが、PHS(personal handyphone system)網、携帯電話網など無線電話網を使用してパケット通信を行う構成であっても良い。
また、前述した実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク(フレキシブルディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【0108】
また、本発明は、前述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、前述した実施形態の各機能は可能な限り適宜組み合わせて実施しても良い。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られるので有れば、この構成要件が削除された構成が発明として抽出され得る。
【0109】
【発明の効果】
以上のように本発明によれば、通信手段を介した相手と対戦ゲームをする利用者による操作を代行する機能を設けることによって、対戦ゲームに参加する利用者が対戦の最初から最後まで互いに対戦相手につきあう必要がなくなるので、利用者の負担を軽減することができ、利用者にとっての利便性、使用感の上で向上を図ることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるネットワーク対戦システムの構成を示すブロック図。
【図2】着手情報コマンドの構造体の一例を示す図。
【図3】局面(盤面)状態データの構造体の一例を示す図。
【図4】利用者データベース42bのレコード構造の一例を示す図。
【図5】定跡データベース42cのレコード構造の一例を示す図。
【図6】本実施形態における利用者端末10とサーバ装置30における動作の概略について説明するためのフローチャート。
【図7】相手着手受信処理について説明するためのフローチャート。
【図8】相手着手確定処理(ステップC2)の詳細について説明するためのフローチャート。
【図9】自着手処理振り分け処理について説明するためのフローチャート。
【図10】定跡エージェント処理について説明するためのフローチャート。
【図11】自側着手確定処理について説明するためのフローチャート。
【図12】トレースエージェント処理について説明するためのフローチャート。
【図13】思考エージェント処理について説明するためのフローチャート。
【図14】終局後処理の動作について説明するためのフローチャート。
【図15】着手自動選択処理の動作について説明するためのフローチャート。
【図16】局面集合が生成される様子を概念的に示すツリー構造の図。
【図17】局面集合を生成する時間wを制限した着手自動選択処理の動作について説明するためのフローチャート。
【図18】自側着手受信処理について説明するためのフローチャート。
【符号の説明】
10−1,10−2…利用者端末
14…公衆網
16…ホスト装置
20…メモリ
21…CPU
22…LCD
23…タッチパネル
24…モデム
30…サーバ装置
34…ルータ
40…CPU
41…メモリ
42…記録装置
43…イーサネット(登録商標)I/F
44…回線制御部
44a…回線I/F
44b…スイッチ部
44c…音声応答部
[0001]
BACKGROUND OF THE INVENTION
The present invention provides a service for playing a battle game such as shogi, go, and chess over a network. GAME SERVER DEVICE AND GAME TERMINAL DEVICE About.
[0002]
[Prior art]
In recent years, as a system for remotely playing (games) games such as shogi, go, and chess between people at remote locations via communication means such as a telephone line or the Internet, terminals used by the opponents are each networked. There is a network battle system in the form of connecting to a server and using this server as a mediator, or in a peer-to-peer format in which a battle is performed by directly connecting terminals used by the opponent. Various commercial services are in practical use.
[0003]
In addition, since a battle between humans and a computer is performed, a battle program is also in a practical stage, and depending on the type of game, there are many programs that battle better than humans. Techniques such as the Min-Max method, pruning, and evaluation function are used as components of the battle program.
[0004]
[Problems to be solved by the invention]
However, the conventional network battle system is based on the premise that the battle will be established by the opponents from each other from the beginning to the end of the battle. was there.
[0005]
The first problem is that even if emergency use is possible during a match, if you leave the terminal, you may lose time or be dissatisfied with your opponent.
The second problem is that if the opponent who is the loser continues to start without ending even though the game has never won or lost, it must continue to respond to the start. Is to be wasted.
[0006]
The third problem (which can also be regarded as a special case of the second problem) is that when the actual end phase of the game is not necessarily impossible to start following the rule, It is possible that the remaining side can continue to start in anticipation of the opponent's running out of time and the side losing in the board state can win. As a specific example, it is a meaningless continuation after being desperate in shogi, and even if it is insufficient for the minimum number of pieces to win in chess, it keeps pointing, hitting suicide in the opponent's final place in Go The act is equivalent. This is a problem that is likely to occur in a battle game that requires a certain amount of time to operate the terminal, but it is likely to cause troubles between users due to the moral problem that respects cleanliness.
[0007]
Also, as a fourth point (even if it is not a problem), if you are going to a specific battle type in the network battle system, you will need to enter the first step that you have decided. Input automation was not taken into account and the characteristics of the computer system were not utilized to the fullest extent.
[0008]
As described above, in the conventional system, it is necessary to correspond to the opponent from the start of the battle until the end of the battle, and as in the first to fourth problems described above, other than the essential part of the battle There was a risk that it would be a hindrance to the use of network battles.
[0009]
The present invention has been made in view of the above-described problems, and can reduce the burden on the user by providing a function of performing an operation by a user playing a battle game with an opponent via a communication means. GAME SERVER DEVICE AND GAME TERMINAL DEVICE The purpose is to provide.
[0010]
[Means for Solving the Problems]
The present invention is a game server device used in a game system for causing a plurality of user terminals connected via communication means to perform a battle game, and information for advancing a battle game acquired from the user terminal In accordance with the normal mode processing means for proceeding with the battle game, first storage means for sequentially registering information for proceeding with the battle game edited in advance, and for proceeding with the battle game acquired from the user terminal First information generating means for generating information for advancing the next battle game from the information registered in the first storage means when the information follows the order of information registered in the first storage means; Agent mode processing means for advancing a battle game according to information for advancing the game generated by the first information generation means, and the user terminal According to the present invention, there is provided distribution means for assigning which of the normal mode processing means and the agent mode processing means to advance the battle game according to the setting from the end.
Further, the present invention is a game server device used in a game system for causing a plurality of user terminals connected via communication means to perform a battle game, for advancing a battle game acquired from the user terminal. A normal mode processing means for advancing the battle game according to the information; a second storage means for sequentially registering information acquired from each user terminal in the battle game played in the past; and a battle game acquired from the user terminal. Second information generation for generating information for advancing the next competitive game from the information registered in the second storage means when the information for progress follows the order of information registered in the second storage means And an agent mode processing means for advancing the battle game in accordance with information for advancing the game generated by the second information generating means , Characterized by comprising a distributing means for distributing any depending the progress of the competition game of the agent mode processing means and the normal mode processing means in accordance with the setting from the user terminal.
The present invention also relates to a game terminal device that plays a battle game with another game terminal device connected via a communication means, and a normal mode processing means that advances the battle game based on information input from a user; , First storage means in which information for advancing a battle game that has been pre-edited is registered in order, and information for advancing a battle game acquired from the other game terminal device is registered in the first storage means The first information generating means for generating information for advancing the next competitive game from the information registered in the first storage means, and the first information generating means Agent mode processing means for advancing the battle game according to information for advancing the game, and the normal mode processing means for the setting in the game terminal device A distribution unit that distributes which of the agent mode processing units causes the battle game to proceed, and a transmission unit that transmits information for proceeding with the game selected by the distribution unit by the communication unit. And
The present invention also relates to a game terminal device that plays a battle game with another game terminal device connected via a communication means, and a normal mode processing means that advances the battle game based on information input from a user; Second storage means in which information for advancing a game in a battle game played in the past is registered in order, and information for advancing a battle game acquired from the other game terminal device is registered in the second storage means The second information generating means for generating information for advancing the next battle game from the information registered in the second storage means, and the second information generating means Agent mode processing means for advancing the battle game according to information for advancing the game, and the normal mode processing according to the setting in the game terminal device A distribution unit that distributes whether the battle game is to be advanced by the agent mode processing unit; and a transmission unit that transmits information for advancing the game selected by the distribution unit by the communication unit. It is characterized by.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a network battle system according to an embodiment of the present invention. As shown in FIG. 1, user terminals 10 (user terminals 10-1 and 10-2) are connected to a host device 16 via a public network 14, and include a shogi, a go, a chess, and the like provided by the host device 16. It is possible to receive various services in addition to a battle service that allows the player to play (games) with an opponent through a communication line. The user terminal 10 is configured as a dedicated terminal (matching game device) for playing a shogi game with an opponent via a communication line, for example, and can play a shogi game or the like via the host device 16. Of course, it is possible to realize the same function as the user terminal 10 of the game dedicated terminal by executing the game program (matching program) by a personal computer or a PDA (personal digital assistant). Hereinafter, a case of playing a shogi game will be described as an example. The public network 14 is a packet switching network, and for example, ISDN (Integrated Services Digital Network) is used.
[0012]
As shown in FIG. 1, the user terminal 10 includes a memory 20, a CPU 21, an LCD (Liquid Crystal Display) 22, a touch panel 23, and a modem 24, which are connected to each other via an I / F circuit.
[0013]
The memory 20 stores various control programs executed by the CPU 21, data, and the like, and includes various data in addition to a game program and a communication control program for realizing a shogi game. In addition to the memory 20, the user terminal 10 can also be provided with a magnetic or optical recording medium on which a program, data, etc. are recorded, or a recording medium composed of a semiconductor memory. The recording medium is fixedly provided in the recording apparatus or is detachably mounted. The program, data, etc. recorded on the recording medium may be received and recorded from other devices connected via a communication line, etc. A recording apparatus having a recording medium may be provided on the device side, and the program and data recorded on the recording medium may be used via a communication line.
[0014]
The CPU 21 realizes various functions according to various control programs and data stored in the memory 20, and realizes a game for playing a game such as a shogi game and a function for executing communication. In the user terminal 10 according to the present embodiment, when a game is played, the game is executed when a request from the user or the game is in a specific state in addition to the normal mode in which the game is played by information input from the user. An agent mode (thinking agent mode, fixed agent mode, and tracing agent mode) is prepared in which the game progresses without input of information from the user by a prepared start selection algorithm.
[0015]
The LCD 22 displays various information necessary for playing the shogi game. The basic function buttons such as the shogi board surface, connection button, game request button, and end button, and the game game operation mode (normal mode, agent) (Switch mode) for switching the mode, and information such as the number and time elapsed.
[0016]
The touch panel 23 is used for designating a position where a button for defining an operation on the terminal and a piece during the execution of a shogi game are to be placed.
The touch panel 23 and the LCD 22 are configured to be a laminated integrated type and constitute a display input unit, and by directly specifying an object displayed on the LCD 22 with a pen or the like, corresponding coordinate data is input. Can do.
The modem 24 is for performing communication via the public network 14, and dials up to the host device 16 when there is a connection request for performing a battle.
The game program stored in the memory 20 of the user terminal 10 is event-driven by an operation on the touch panel 23 and a game partner's start information command received from the modem 24. When an event that the connection button is touched is detected, the modem 24 dials up to the host device 16 to establish a data link. When an event that the area on the shogi board surface is touched is detected, the start coordinates are calculated from the touched points, and the start coordinates are displayed on the corresponding points on the LCD 22 based on the coordinate data. Data is sent as a start information command to the modem 24 and transmitted to the host device 16 through the modem 24. Further, when an event occurs in which the modem 24 receives a start information command from the opponent user terminal 10, start coordinate data (frame code) is acquired from the start information, and the start of the opponent is displayed at a corresponding point on the LCD 22. . When another function button is touched, the corresponding command character string is sent to the host device 16.
[0017]
As shown in FIG. 1, the host device 16 includes a server device 30 (communication game device) and an access router 34. The server device 30 provides various services to the user terminal 10 connected via the public network 14. For example, the server device 30 controls various games of the shogi game between the terminals and various information related to the game (win / lose record, (Provide the level and score). The access router 34 is for connecting the server device 30 and the user terminal 10 via the public network 14 and is connected by TCP (transmission control protocol) / IP (internet protocol) and Ethernet (registered trademark).
[0018]
The server device 30 is configured by a computer that reads a program recorded in various recording media and whose operation is controlled by the read program, and includes a CPU 40, a memory 41, a recording device 42, and an Ethernet (registered trademark) interface. (I / F) 43 are connected to each other via a bus.
[0019]
The CPU 40 realizes various functions according to various control programs and data stored in the memory 41, and realizes a battle service such as a shogi game by executing a game program (match program). In the present embodiment, the operation mode according to the request from the user received from the user terminal 10, that is, the normal mode in which the game is progressed by information input from the user, and the start information using the start automatic selection algorithm Is generated by calculation to execute processing in an agent mode (including a thinking agent mode, a fixed agent mode, and a trace agent mode) in which a game is advanced. In thinking agent mode, when it was determined that the game was actually over, the winner's time (remaining time until the limit) was less than the predetermined value (the meaningless start that expected the player to run out of time was continued) If the waiting time has expired, it is determined that the game will be performed on behalf of the game and the start automatic selection module will immediately start the game without consuming time. This is a mode to allow a normal end to prevent it from happening. In the fixed agent mode, if you edit and prepare the fixed time procedure in advance, while the opponent starts to follow the fixed time procedure, the game automatically proceeds according to the fixed time procedure, and the specified fixed number procedure is completed, This mode returns to the normal mode when the opponent chooses to start out of the routine procedure. The trace agent mode is valid from the beginning or at the specified point in time, and while proceeding in the same procedure as the previous recording procedure (especially when playing continuously with the same opponent), the previous winner side (the first and second players are replaced) This is a mode that automatically advances the game by the same start as the previous time, and returns to the normal mode when the loser selects a different start from the previous time.
[0020]
The Ethernet (registered trademark) I / F 43 is an interface for connecting to the access router 34.
[0021]
The memory 41 stores various control programs executed by the CPU 40, data, and the like, and includes a game program (corresponding to each of the normal mode and the agent mode) for providing a battle service, a communication control program, and the like. Various data such as a start information command (game information) transmitted and received between the user terminals 10 playing the game and situation state data representing the game situation are stored. Details of the start information command and the situation state data will be described later (FIGS. 2 and 3).
[0022]
The recording device 42 stores, in addition to various programs 42a executed by the CPU 40, a user database 42b and a fixed database 42c used for a battle service. Details of the user database 42b and the fixed database 42c will be described later (FIGS. 4 and 5). Note that the recording device 42 is provided with a recording medium composed of a magnetic or optical recording medium, a semiconductor memory, or the like. The recording medium is fixedly provided in the recording apparatus or is detachably mounted. The program, data, etc. recorded on the recording medium may be received and recorded from other devices connected via a communication line, etc. A recording apparatus having a recording medium may be provided on the device side, and the program and data recorded on the recording medium may be used via a communication line.
[0023]
FIG. 2 shows an example of a structure of the start information command transmitted / received between the user terminals 10 playing the game. As shown in FIG. 2, the start information command includes horizontal coordinate and vertical coordinate data indicating the start position on the board, a piece code indicating which piece is to be started, and other additional information. ing.
[0024]
For example, in the shogi game, “7 6 steps” (step code = 1) is represented by (7, 6, 1, 0). When there is information that cannot be expressed only by the start coordinates and the piece code, the additional information is written in the bit field. For example, when the most significant bit = 1, it indicates “termination” (at this time, the coordinate data and the piece code are meaningless, so anything may be used), or other bits with the same code using shogi In order to distinguish when can move to the same coordinates, right and left are used.
[0025]
FIG. 3 shows an example of a state (board surface) state data structure for managing the game situation in the server device 30. As shown in FIG. 3, the situation state data includes each of the user numbers 10 on the side of the user number 10 side (first move / rear move) and the grid of the board surface (9 × 9). Lattice information (frame code indicating the type of frame, affiliation code indicating which side belongs to the front or back) of the frame started on the frame ([0] [0] to [8] [8] ), The piece information about the piece to be held (a piece code indicating the type of the piece to be held, an affiliation code indicating to which side of the front piece or the rear piece the piece belongs) ([0] to [38]).
[0026]
For example, when the value of the grid information [7] [7] is (1, 0), there is a piece of piece code 1 (“walk”) and belonging 0 (first piece) at a point on the board surface 77. Represents. Here, when “76 steps”, (7, 6, 1, 0) is started as the first move, “steps” moved from 77 to 76, so the lattice information [7] The value of [7] is updated to (0, 0) and the value of lattice information [7] [6] is updated to (1, 0) (frame code 0 represents empty).
[0027]
FIG. 4 shows an example of the record structure of the user database 42b (DB) stored in the recording device 42. The user database 42b is for registering information about users who use the battle service for each user. A user ID (integer) for identifying the user and a game of the user (user terminal) Rating value (integer) indicating the strength of the file (third storage means), flag for use of the fixed database indicating whether or not the fixed agent mode is enabled (binary value), whether or not the trace agent mode is enabled Last game trace flag (binary value), last win / loss (first win, second win, draw), and the previous game score (up to 30 in this case) 0] to [29]) (second storage means), average start required time (total start time, total number of samples) ([0] to [3]). Of the fields in the user database 42b, the structure of the previous game score is obtained by connecting the start information in order from the start. The average time required for starting (array [0] to [3]) is information for representing a consumption time trend required by the user (user terminal 10) to proceed with the battle game, and the remaining time is 10 If there are more than minutes, if the remaining time is 5-10 minutes, if the remaining time is 3-5 minutes, if the remaining time is less than 3 minutes, it is divided into 4 stages, The table shows the relationship between the remaining time and the average consumption time for each hand. The average start time can be calculated by (total start time / total number of samples). In the previous game score [0] to [29], 0, 2, 4... Indicates the start of the first move, and 1, 3, 5. Only 30 hands are recorded from the beginning.
[0028]
FIG. 5 shows an example of the record structure of the fixed database 42 c (DB) stored in the recording device 42. The fixed database 42c (first storage means) is information in which information for advancing a battle game that has been edited and configured in advance is registered in order, that is, a fixed line start is registered in order, and each record includes As shown in FIG. 5, serial number (integer), self-start information (structure consisting of start coordinate data and piece code), opponent start information ac (each start information structure), and subsequent serial number fields ac Each integer). If the record in which the same start information as that of the start is registered is selected in the fixed database 42c and the start information from the opponent is one of the three types in the start information a to c, the opponent start By searching for the record of the serial number indicated by the subsequent serial number field corresponding to, the self-starter can be automatically selected. For example, it is assumed that the information representing the fixed mark registered in the fixed mark database 42c is information edited by the user's operation or typical existing information. When the subsequent serial number reaches 0, the subsequent procedure is not recorded in the fixed-name database 42c, that is, the fixed-number end is indicated.
[0029]
A serial number (J) is set for each record stored in the trace database 42c, and the serial number (J) is 1 for the first run, 2 for the first run (2nd), 0 for the end, and 3 for other numbers. Set appropriately so as not to. It should be noted that the self-start information of the first record in the subsequent number is not referred to (the reference is meaningless). Further, it is not necessary to set the opponent start information corresponding to the subsequent serial number 0 (in order to end the fixed time even when the hand is not in the opponent start a to c).
[0030]
For example, if there is a record “3 4 steps” and “8 4 steps” for the first move “7 6 steps”, the corresponding record values are (1, (7, 6, 1, 0), (3,4). , 1, 0), 10, (8, 4, 1, 0,), 20, (0, 0, 0, 0), 0,). In the record of serial number 10, a self-start for “3 four steps” is registered, and in the record of serial number 20, a self-start for “8 four steps” is registered.
[0031]
Next, the operation of the network battle system in this embodiment will be described.
First, an outline of an operation in the user terminal 10 (user terminals 10-1 and 10-2) will be described with reference to a flowchart shown in FIG.
The user operates the user terminal 10 by touching the touch panel 23. The CPU 21 of the user terminal 10 drives an event according to a program recorded in the memory 20 in response to an operation on the touch panel 23 and reception of a start information command of the opponent from the modem 24.
[0032]
When the event that the connection button is touched is detected, the modem 24 dials up to the host device 16 to establish a data link with the host device 16 via the public network 14 (step A2). Further, when it is detected that the game request button has been touched, the host device 16 assigns a game partner and the game starts (step A3). The CPU 21 displays the game board on the LCD 22. The first and second moves are decided, and the move is sent by touching the surface of the terminal from the first player.
[0033]
When detecting an event that the area on the shogi board surface is touched, the CPU 21 calculates the start coordinates from the touched point, displays its start (piece) at the corresponding point on the LCD 22, and starts the start coordinates. The information command is transmitted to the host device 16 through the modem 24. When another button is touched, the CPU 21 transmits a corresponding command to the host device 16. On the other hand, when an event for receiving a start information command is generated by the modem 24, the CPU 21 obtains the opponent's start coordinate and piece code from the start information command, and based on this, the opponent's start (piece) is assigned to the corresponding point on the LCD 22. To display.
[0034]
In the user terminal 10 in the present embodiment, when performing a game through the host device 16, the fixed agent mode or the trace agent mode can be set by an operation on the mode setting button from the user (step A1). In this case, the user terminal 10 performs registration of the setting mode when connected to the host device 16 so that the battle can proceed without requiring the user to start the setting mode. In addition, when the content of the battle is substantially decided to win (final state), the user sets the thinking agent mode by operating the thinking agent mode switching button (step A4), and the rest The game can be advanced without consuming time. The user terminal 10 notifies the host device 16 that the thinking agent mode has been set (step A5), and the battle is advanced in this setting mode. Note that the thinking agent mode can be canceled at an arbitrary timing desired by the user by operating the thinking agent mode switching button again. The thinking agent mode is automatically set when the remaining time is less than a predetermined value determined in advance in the final state, for example, when the remaining time is less than 10 seconds.
[0035]
Next, an outline of the operation in the server device 30 will be described with reference to the flowchart shown in FIG. Here, description will be made assuming that the server device 30 mediates a game performed between the user terminal 10-1 and the user terminal 10-2.
[0036]
The server device 30 waits for reception of a connection request packet for a specific TCP port number of TCP / IP, and activates the server main process as a child process each time there is a connection request to process the connection (steps B1 and B2). . Accordingly, the server device 30 can process a plurality of connections in parallel. The connection is maintained until the user terminal 10 is disconnected, and each child process continues during that time. In the following description, processing for the user terminal 10-1 will be mainly described.
[0037]
The processing contents of the child process that processes the connection can be configured as follows.
The child process repeatedly reads and interprets the command received from the TCP / IP socket for the user terminal 10-1 with which the connection has been established, and the other party (user terminal 10-2) received from the inter-process communication channel. Read and interpret commands from the side. Further, the child process can use the inter-process communication channel that is realized by the shared memory space and can be input and output as a one-to-one bidirectional stream by specifying the inter-process communication channel ID number.
[0038]
The game request command received from the TCP / IP socket includes a user ID. When a game request command is received, the user database 42b is searched using the user ID as a key, and the game status field of the corresponding user record (hereinafter referred to as user record UR) is updated to 1 (during game participation inquiry). . Subsequently, a user record UR having a game status of 2 (waiting for a game partner) is searched, a user corresponding to the user record UR found first is selected as a game partner, and an empty inter-process communication channel ID is acquired. Both the user record UR and the user record UR of the opponent are updated to the inter-process communication channel ID obtained by acquiring the inter-process communication channel ID in the game status field 3 (in-game). At this time, the first and second moves are determined by random numbers. When the record of the opponent is not found, the player status field of the user record UR is updated to 2 (waiting for opponent). In addition, when it is not in any of the above-described states (after the game is ended, for example), it is assumed that the game status is set to 4.
[0039]
The contents of the user record UR obtained from the user database 42b are copied into the local work memory and used for reference to each process described below. Further, the setting mode is registered by the pre-game process executed before the game is started (step B3). That is, the fixed agent mode or the trace agent mode is validated according to the setting of the agent mode in the user terminal 10-1. As for the trace agent mode, is the previous game trace flag (agent mode setting) of the user record UR obtained from the user database 42b true, and whether he / she is the first player and the previous winner is the first player Or the trace agent mode is activated when the player is in the back and the previous winner is in the back. The thinking agent mode is disabled at the initial stage. Each mode is managed by providing a flag in the local working memory for each child process.
[0040]
Hereinafter, the command received from the user terminal 10-1 is identified, and an event corresponding to the identification result is executed. In the partner start reception process (steps B4 and B5) that is executed when it is not self-start (start on the user terminal 10-2 side), partner start determination process (FIG. 8), self-start process distribution process (FIG. 9), Various processes such as a fixed agent process (FIG. 10), a trace agent process (FIG. 11), a thinking agent process (FIG. 12), and a final post-process (FIG. 14) are executed. Further, in the self-start reception process (steps B4 and B6) executed in the case of a self-start, the self-side start confirmation process (FIG. 11), the final post-process (FIG. 14), and the start automatic selection process (FIGS. 15 and 1)
Various processes such as 7) are executed. Details of each process will be described later.
[0041]
First, the partner start reception process will be described with reference to the flowchart shown in FIG.
The server device 30 processes the start information command from the other party only when the game status field of the user record UR is 3 (during game) (step C1). When the server device 30 receives a start information command from the opponent in the inter-process communication channel, the server device 30 executes a partner start determination process (step C2), and the same contents are stored in the TCP / IP socket (in the user terminal 10-2). Send out (step C3). Thereby, it becomes possible to display the start of the opponent in the user terminal 10-2. Then, in order to determine the start corresponding to the opponent opponent's start, a self-start process distribution process is executed (step C4).
[0042]
Here, the details of the partner start determination process (step C2) will be described with reference to the flowchart shown in FIG.
If the start information command received from the opponent does not indicate completion (step E1), the server device 30 updates the phase state data according to the contents of the start information (step E4), and further ends by this opponent start. In order to determine whether or not a state is reached, an end determination process is executed (step E5). In the final determination process, the final state determination module substantially sets the final state (a state in which winning or losing is determined by normal start) based on the data registered in the situation state data. It is determined whether or not.
[0043]
The final state determination module is configured according to each rule depending on the type of game, and how much determination can be made varies. Here, as an example of the simplest configuration, one example effective in the case of chess is described. The only piece remaining on the board of one player car is King, and the other player is other than King on the board. If either Queen or Rook remains in the list (except for the case where King can immediately take the Rook), the means for determining this can be clearly configured. The player is determined to be “virtually a loser” and the other is determined to be “a virtual winner”. Although it is possible to go further in the rules, players who are only King can not win no matter how much they point, and it can be considered that there is virtually no possibility of a draw between skilled players (It is possible to construct a method with a wider determination range, but the explanation is simplified here).
[0044]
As a result of the end station determination process, when it is determined that the station is in the end state, the end state is set (effectively the flag E = 1 indicating the end is set. In other cases, E = 0 (Step E6), the variable N representing the current number is updated (+1) (Step E7). Then, the partner start is displayed on the user terminal 10-1 (step E8).
On the other hand, when the start information command from the opponent of the game indicates termination (step E1), the server device 30 executes the winning time process.
[0045]
In the winning time process, a rating increment (r: difference in rating value) is calculated in order to update the rating value of the corresponding user record UR in the user database 42b according to winning the game (step E2). The rating value is referred to when the start is automatically determined in the agent mode regardless of the user's operation, and represents the level of the user's strength with respect to the game. In other words, by raising the rating value according to the winning of the game, the level (repulsive force) of the agent can be increased so as to be linked to the strength of the user against the game. Therefore, the user can get a sense of accomplishment as the agent becomes stronger with him.
[0046]
For example, the increase in rating is calculated by 16 + 0.04 × (rating value of opponent of the player−rating value of the user). As a method for calculating the rating value, other methods can be used as long as the level of strength can be expressed according to the win or loss of the game.
[0047]
Further, the server device 30 calculates the increment of the rating value, and then executes post-end processing (step E3).
[0048]
FIG. 14 shows a flowchart for the operation of the final post-processing. In the final post-processing, first, the rating increase (r) calculated in step E2 is added to the current rating value stored in the rating value field of the corresponding user record UR (step L1).
[0049]
Also, the contents of the previous win / loss field and the previous game record field of the user record UR are replaced with those of the current game (step L2), and the game status is updated to 4 to indicate that the game has ended. (Step L3). The server device 30 updates the user database 42b with the updated user record UR. Note that when the start in the thinking agent mode is not used, the average start time of the user record UR is also updated in the self-side start reception process described later.
[0050]
On the other hand, the self-handling process distribution process (step C4) is executed as shown in the flowchart shown in FIG. The server device 30 distributes whether the next start is determined by the agent mode or the user inputs the start by the self-start process distribution process.
That is, when any one of the fixed agent mode, the trace agent mode, or the thinking agent mode is activated (steps D1, D3, and D5), the agent process of the activated mode is executed and the user is executed. Instead, the start is determined (steps D2, D4, D6).
[0051]
On the other hand, if none of the agent modes is activated, the server device 30 displays a message “please start input” to prompt the user to perform a start operation on the user terminal 10-1. (Step D7) In order to measure the time required to start, start time timer timing is started (Step D8). Thus, the time required for starting is counted for each start, and the remaining time is limited by gradually subtracting from the predetermined holding time.
[0052]
Next, processing in each agent mode will be described with reference to the flowcharts shown in FIGS.
First, the fixed agent process will be described with reference to the flowchart shown in FIG.
[0053]
First, the server device 30 acquires a record of serial number J registered in the fixed database 42c (hereinafter, fixed record JR) and stores it in the memory 41. As an initial value of the serial number J, 1 is set in the case of the front number and 2 in the case of the back number in the pre-processing before the start of the game.
[0054]
Here, if the serial number J is 1, that is, the serial number corresponding to the first mover, the self-start is determined to be the start indicated by the self-start information of the fixed record JR (step F13), and the self-side start determination process Is executed (step F14). The details of the self-side start determination process will be described later (FIG. 11).
[0055]
On the other hand, if the serial number J is not 1, that is, if it is not the serial number corresponding to the first mover, it is determined whether the opponent's start with respect to the own start corresponds to any of the opponent start information ac of the fixed record JR (step) F3). Here, when the opponent start corresponds to the opponent start information a of the fixed record JR, the subsequent serial number a associated with the opponent start information a is set to the serial number J (step F4). On the other hand, when the partner start corresponds to the partner start information b of the fixed record JR, the subsequent serial number b associated with the partner start information b is set to the serial number J (step F5), and when the partner start information corresponds to the partner start information c, The subsequent serial number c associated with the partner start information c is set to the serial number J (step F6). If the opponent's start does not correspond to any of the opponent's start information a to c, the serial number J is set to 0 to invalidate the fixed agent mode, assuming that the opponent has started to deviate from the fixed line. Set (step F7).
[0056]
If the value of the serial number J is 0 (step F8), the fixed agent is invalidated (step F9). Then, in order to notify the user that the scheduled agent mode has ended in the user terminal 10-1, a message of “end of fixed schedule” is displayed (step F10), and the user is prompted to perform an input operation for the next start. For this purpose, a message “Please enter the start” is displayed (step F11), and the start time timer is started to measure the time required for the start (step F12).
[0057]
If the value of the serial number J is not 0, the self-start is determined to be the start indicated by the self-start information of the fixed record JR (step F13), and the self-side start determination process is executed (step F14). In other words, when the opponent starts a match indicated by the opponent start information registered in the fixed record record JR, the start indicated by the corresponding self start information registered in the identification record record JR is set as the self start.
[0058]
When the scheduled agent process is executed in the next self-starting process distribution process, the fixed record having the subsequent serial number set in steps F4 to F7 is acquired and the same process as described above is executed. Therefore, in the agent process, when the opponent shows the start indicated by the opponent start information registered in the fixed record, it is possible to deal with the match by using the fixed start corresponding to the start as the start.
[0059]
In this way, by using the scheduled agent mode, when proceeding as scheduled in the beginning of the game, etc., the game is delegated by the scheduled agent so that the user does not need to perform an operation for starting. be able to.
[0060]
Here, the self-side start determination process will be described with reference to the flowchart shown in FIG.
[0061]
When the game status field of the user record UR is 3 (during game play) (step K1) and the start does not indicate completion (step K2), the server device 30 determines the situation state data according to the content of the start information. Is updated (step K5), and the variable N representing the current number is updated (+1) (step K6). Then, the start information command received from the TCP / IP socket (user terminal 10-1) is transferred to the interprocess channel (user terminal 10-2) as it is (step K6), and at the user terminal 10-1. In order to allow the user to easily check the start update, the start update confirmation display is displayed (step K8).
[0062]
On the other hand, when the start indicates termination (step K2), the server device 30 executes a loss process.
[0063]
In the loss process, a rating decrease (r: rating value difference) is calculated in order to update the rating value of the corresponding user record UR in the user database 42b in accordance with the loss of the game (step K3). Since the rating value represents the level of the user's strength against the game, the agent's level (repulsive force) is lowered in accordance with the strength of the user's game by increasing the rating value according to the loss of the game. be able to.
[0064]
For example, it is assumed that the increase in rating is calculated by 16 + 0.04 × (rating value of user−rating value of opponent). As for the calculation method of the rating value, other methods can be used as long as the level of strength can be expressed according to the winning or losing of the game in the same way as the winning time process.
[0065]
In addition, the server device 30 calculates a decrease in the rating value, and then executes post-end processing (step K4). As described above, the post-end post-process is executed according to the flowchart shown in FIG.
[0066]
Next, the trace agent process will be described with reference to the flowchart shown in FIG.
[0067]
First, when the current number N is 0 (step G1), that is, in the case of the first turn, the server device 30 self-starts the previous game score [0] registered in the user record UR of the user database 42b. Is set (step G2), and the self-side start determination process is executed (step G3).
[0068]
Further, the server device 30 has a current number N of less than 30 in which the previous game record has been registered in the user record UR, and the immediately preceding game partner's start is the previous game record [N-1] (step) G4), that is, when the game has been started in accordance with the previous game record registered in the user record UR, the previous game record [N] registered in the user record UR in the user database 42b is set as a self-start. (Step G5), self-side start confirmation processing is executed (Step G6).
[0069]
On the other hand, if neither of the conditions in steps G1 and G4 is applicable, the server device 30 invalidates the trace agent (step G7), and the user has confirmed that the trace agent mode has ended in the user terminal 10-1. In order to notify the user, a “trace end” message is displayed (step G8), and a “input start” message is displayed to prompt the user to input the next start (step G9). In order to measure the time required for the start, the start time timer is started (step G10).
[0070]
In this way, by using the trace agent mode, in the case of proceeding in the same way as when winning the previous game, the trace agent can be used to act on the basis of the previous game score. Therefore, the operation for starting by the user can be made unnecessary.
[0071]
Next, the thinking agent process will be described with reference to the flowchart shown in FIG.
[0072]
First, the server device 30 refers to the rating value of the user record UR, and determines whether this rating value is larger than a preset reference value used for level determination (step H1). Here, for example, the level indicated by the rating value is determined by setting the reference value as 1600. If the reference value exceeds 1600, level 3 is set (step H2), and if the reference value is 1600 or less, level 2 is set (step H3). The level set here is used in the automatic start selection process described later. Further, the remaining time t (seconds) of the user at the present time is calculated (step H4).
[0073]
Here, the server device 30 starts the automatic start selection process by the automatic start selection module, and determines the next self-start by using the current situation state data as an input (step H5).
[0074]
FIG. 15 shows a flowchart of the automatic start selection process. In the automatic start selection process, the next phase when the next phase is started from the phase indicated by the current phase status data is considered as a possible start (all starts are possible, but processing efficiency is limited to powerful start) And a next phase set consisting of the plurality of next phases is generated (step M1).
[0075]
Further, for each next phase included in the next phase set, the next phase when the next phase is started next is obtained for each possible start, and a next phase set consisting of these multiple next phases is generated. (Step M2).
[0076]
Here, it is determined whether the level obtained based on the rating value of the user in the thinking agent process exceeds level 2, that is, whether the user's strength against the game is higher than a predetermined level (step M3).
[0077]
If the level 2 is exceeded, then for each successive phase included in the successive phase set, the next phase when the next phase is started from the next phase is obtained for each possible start, and these multiple A set of phases consisting of successive phases is generated (step M4).
[0078]
FIG. 16 is a tree structure conceptually showing how a set of phases is generated as described above. FIG. 16 shows a tree structure corresponding to level 2, in which the next phases 1 to N are generated for the current phase, and the next phase is generated for each of the next phases 1 to N (for the next phase 1). Then, aspects 1, 1 to 1 and N are generated one after another). In this way, it is determined by thinking agent processing by changing the depth of reading of the thinking agent (that is, strength) in accordance with the level of the user's rating value (the actual level of strength of the user's game). The starting strength can be made as strong as when the user actually starts.
[0079]
The server device 30 searches the tree structure from a set of phases generated according to the user's rating value to a certain depth while pruning with an evaluation function of a predetermined phase, and similarly uses the Min-Max method with the evaluation function. Apply to select the foremost procedure (one path in the tree) (step M5), set the first step of the foremost procedure as a return value (start determined by the thinking agent) (step M6), and return to the thinking agent processing .
[0080]
In the start automatic selection process shown in the flowchart of FIG. 15, a set of phases up to a depth corresponding to the level of the user is generated, but a long processing time is required to generate a set of phases up to a necessary depth. When the processing load is large, such as necessary, the time for generating the set of phases may be limited.
[0081]
FIG. 17 shows a flowchart of the start automatic selection process in which the time w for generating the set of phases is limited. In this case, in the automatic start selection process, the next phase set, the next phase set, etc., in order, within a depth level obtained based on the user's rating value until a predetermined time w elapses. Are generated (steps N1 and N2).
[0082]
When a predetermined time w (seconds) elapses, the generation of the phase set is generated at that time even if the phase set up to the depth level obtained based on the rating value of the user has not been generated. 15 is completed, and the foremost procedure is selected by applying the Min-Max method (step N3) in the same manner as in steps M5 and M6 of the start automatic selection process shown in the flowchart of FIG. This is set as a start to be determined by the thinking agent (step N4).
[0083]
Here, in the thinking agent process, the waiting time (w seconds) until the start information command is sent to the opponent according to the remaining time t and the average start required time [0] to [3] of the user record UR. Is calculated. That is, in the average start required time [0] to [3], when the remaining time is 10 minutes or more, when the remaining time is 5 to 10 minutes, when the remaining time is 3 to 5 minutes, the remaining time is 3 Since the average start time of the user when less than a minute is registered, the user is actually playing by setting the average required time according to the remaining time t to be the time required for the local start You can elapse time as well.
[0084]
However, if the remaining time t is less than 10 seconds and the flag indicating the end of the event is set (E = 1), the waiting time w is set to 0 (no waiting time) (step H7). ). As a result, even if the opponent who is actually defeated can respond to aiming to win by time out, it will proceed without consuming the remaining time, so it will time out the game that is effectively winning You can avoid losing.
[0085]
If the remaining time t is less than 180 seconds, the waiting time w is the time registered in the average start required time [3] of the user record UR (the user's time when the remaining time is less than 3 minutes). (Average start time) is set (step H8).
[0086]
If the remaining time t is less than 300 seconds, the waiting time w is the time registered in the average start required time [2] of the user record UR (use when the remaining time is less than 3 to 5 minutes). (Average start time of the person) (step H9).
[0087]
If the remaining time t is less than 600 seconds, the waiting time w is the time registered in the average start required time [1] of the user record UR (use when the remaining time is less than 5 to 10 minutes). (Average start time of the person) (step H10).
[0088]
When the remaining time t is 600 seconds or more, the waiting time w is the time registered in the average start required time [0] of the user record UR (the user's time when the remaining time is 10 minutes or more). (Average start time) is set (step H11).
[0089]
The server device 30 waits for w seconds in accordance with the waiting time w set in any one of the processes of Steps H7 to H11 (Step H12), and then determines by the automatic start selection process by executing its own start determination process. The start information command for the start is transmitted to the inter-process channel (other party) (step H13).
[0090]
In this way, by using the thinking agent mode, the game is acted on behalf of the game determined by the automatic start selection process (module) at any timing during the game, and no operation for the user to start is required. It can be. In the user terminal 10-1 of the user, the start determined by the start automatic selection process is transmitted from the host device 16 and only the situation state is displayed. In the automatic start selection process, the depth of reading is changed according to the rating value indicating the strength of the user's game, and the time required for the average start time when the user actually plays is consumed from time to time Therefore, using the thinking agent mode does not give the opponent a sense of injustice.
[0091]
Next, the self-side start reception process will be described with reference to the flowchart shown in FIG.
[0092]
The server device 30 processes the start information command from the user terminal 10-1 (user) only when the game status field of the user record UR is 3 (during game) (step J1).
[0093]
Set the time u (seconds) required to start from the start time timer timing to the start (when the start information command is received) (Step J2), and wait for the remaining user based on this time u The time t (second) is updated (step J3).
[0094]
Here, the average start required time [0] to [3] of the user record UR is updated according to the remaining waiting time t.
For example, when the remaining waiting time t is less than 180 seconds, the start time u is added to the total start time of the average start time [3] of the user record UR, and 1 is added to the total number of samples. (Step J5).
[0095]
In addition, when the remaining waiting time t is less than 300 seconds, the start time u is added to the total start time of the average start time [2] of the user record UR, and 1 is added to the total number of samples. (Step J6).
[0096]
In addition, when the remaining waiting time t is less than 600 seconds, the start time u is added to the total start time of the average start time [1] of the user record UR, and 1 is added to the total number of samples. (Step J7).
[0097]
In addition, when the remaining waiting time t is less than 600 seconds, the start time u is added to the total start time [0] of the average start time [0] of the user record UR, and 1 is added to the total number of samples. (Step J8).
[0098]
Then, the received start information command is set to the own start (step J9), and the above-described own start determination process (FIG. 11) is executed (step J10).
[0099]
In this way, in the local start reception process, when the user starts the game in the thinking agent mode by updating the average start time based on the time required for the actual start of the user, the user actually It is possible to control so that time is consumed in the same manner as when playing a game.
[0100]
Thus, by playing using the agent mode, the user can continue playing even if he / she is away from the user terminal 10 during the game (without inputting information). Even if you do not lose, you will not feel uncomfortable with your opponent. In addition, even if you do not leave the user terminal 10 during the game, if you want to start regularly, such as when you start the same as the previous game or when you follow a fixed schedule, By embarking on the trace agent and fixed-line agent, you can save yourself the trouble of inputting simple information.
[0101]
In addition, when the thinking agent mode is used, the start is determined according to the level of strength of the user, so that the use of the thinking agent can be imparted with a sense of fairness and impartiality, and the player has won the game. Since the thinking agent becomes stronger by leaving the mark, a sense of achievement can be provided. In addition, in the start in the thinking agent mode, the time spent also depends on the time spent when the user actually plays (average start use time). It is also possible to prevent an unnatural early pointing and backward pointing due to the agent acting on behalf of the player. Furthermore, by using the thinking agent mode, the time required for terminal operation (operation to input start information) is used to bring the opponent to the end of the time, and it is not possible to win the game even though it is virtually lost on the end board. The frequency of natural phenomena can be reduced. This is particularly effective when the time is running out (the usage time through the game is limited by the sum and the minimum time per hand is not secured).
[0102]
In the above description, in the thinking agent mode, it is described that the starting is determined by the thinking agent and the game is progressed. However, not all startings are automatically advanced, each starting or predetermined The user may be asked to confirm the start that matches the above condition, and when there is an approval response, the game may be advanced by this start. At this time, when a confirmation is requested from the user, if there is no response within a predetermined time (during timeout), it may be determined that the user has been approved.
[0103]
In the above description, in the fixed agent mode, the fixed procedure is described from the beginning. However, the fixed agent may be used for starting from the middle of the game. For example, in the case of Go, the scheduled agent may be activated when a pattern on a part of the board surface matches a fixed pattern (fixed stone) pattern in the middle of the game.
[0104]
Further, the fixed database 42c, the final state determination module, and the start automatic selection module may be provided in the user terminal 10 instead of being provided in the host device 16. As a result, part or all of each agent process can be processed by the user terminal 10.
[0105]
In the above description, the previous game record registered in the user record UR of the user database 42b is only one game record. However, a plurality of game records performed in the past may be registered. For example, all the games played in the past may be registered and used for the trace agent processing. In that case, it may be configured in a tree structure (graph structure) similarly to the fixed database 42c.
[0106]
In addition, the final state determination may be performed by prefetching, or may be performed using ground determination when the game is Go.
[0107]
Further, instead of providing a battle service by a single server device 30, a function of providing a battle service by providing a plurality of server devices 30 may be distributed and executed.
In the system configuration shown in FIG. 1, the user terminal 10 and the public network 14 are connected by wire, but packet communication is performed using a wireless telephone network such as a personal handyphone system (PHS) network or a mobile phone network. The structure which performs this may be sufficient.
In addition, the method described in the above-described embodiment is applied to a recording medium such as a magnetic disk (flexible disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.), a semiconductor memory, etc. as a program that can be executed by a computer. It can be written and provided to various devices. It is also possible to transmit to a variety of devices by transmitting via a communication medium. A computer that implements this apparatus reads the program recorded on the recording medium or receives the program via the communication medium, and the operation is controlled by this program, thereby executing the above-described processing.
[0108]
Further, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention in the implementation stage. Further, the functions of the above-described embodiments may be combined as appropriate as possible. The above-described embodiments include various stages of the invention, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if several constituent requirements are deleted from all the constituent requirements shown in the embodiment, an effect can be obtained, so that a configuration from which the constituent requirements are deleted can be extracted as an invention.
[0109]
【The invention's effect】
As described above, according to the present invention, by providing a function of performing an operation by a user playing a battle game with an opponent via a communication means, users participating in the battle game battle each other from the beginning to the end of the battle. Since it is not necessary to meet the other party, the burden on the user can be reduced, and it is possible to improve the convenience and feeling of use for the user.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a network battle system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of a structure of a start information command.
FIG. 3 is a diagram showing an example of a structure of situation (board surface) state data.
FIG. 4 is a diagram showing an example of a record structure of a user database 42b.
FIG. 5 is a diagram showing an example of a record structure of a fixed-name database 42c.
FIG. 6 is a flowchart for explaining an outline of operations in the user terminal 10 and the server device 30 in the present embodiment.
FIG. 7 is a flowchart for explaining partner start reception processing;
FIG. 8 is a flowchart for explaining details of partner start determination processing (step C2).
FIG. 9 is a flowchart for explaining self-handling process distribution processing;
FIG. 10 is a flowchart for explaining a scheduled agent process.
FIG. 11 is a flowchart for explaining own-side start determination processing;
FIG. 12 is a flowchart for explaining trace agent processing;
FIG. 13 is a flowchart for explaining thinking agent processing;
FIG. 14 is a flowchart for explaining an operation of post-end processing.
FIG. 15 is a flowchart for explaining the operation of automatic start selection processing;
FIG. 16 is a diagram of a tree structure conceptually showing how a set of aspects is generated.
FIG. 17 is a flowchart for explaining an operation of automatic start selection processing in which a time w for generating a phase set is limited.
FIG. 18 is a flowchart for explaining own-side start reception processing;
[Explanation of symbols]
10-1, 10-2 ... User terminal
14 ... Public network
16: Host device
20 ... Memory
21 ... CPU
22 ... LCD
23 ... Touch panel
24 ... modem
30 ... Server device
34 ... Router
40 ... CPU
41 ... Memory
42 ... Recording device
43 ... Ethernet (registered trademark) I / F
44 ... Line control unit
44a ... Line I / F
44b ... Switch part
44c ... Voice response unit

Claims (6)

通信手段を介して接続された複数の利用者端末に対戦ゲームを行わせるゲームシステムに用いられるゲームサーバ装置であって、
前記利用者端末から取得した対戦ゲームを進行させるための情報に従って対戦ゲームを進行させる通常モード処理手段と、
予め編集構成された対戦ゲームを進行させるための情報が順に登録された第1格納手段と、
前記利用者端末から取得した対戦ゲームを進行させるための情報が前記第1格納手段に登録された情報の順に従う場合に、前記第1格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第1情報生成手段と、
前記第1情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、
前記利用者端末からの設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段とを具備したことを特徴とするゲームサーバ装置。
A game server device used in a game system for causing a plurality of user terminals connected via communication means to perform a battle game,
Normal mode processing means for advancing a battle game according to information for advancing the battle game acquired from the user terminal;
First storage means in which information for advancing a pre-edited battle game is registered in order;
When the information for advancing the battle game acquired from the user terminal follows the order of the information registered in the first storage means, the next battle game is advanced from the information registered in the first storage means First information generating means for generating information for
Agent mode processing means for advancing the battle game according to information for advancing the game generated by the first information generation means;
A game server device comprising: a distribution unit that distributes whether the battle game is to be advanced by either the normal mode processing unit or the agent mode processing unit in accordance with a setting from the user terminal.
通信手段を介して接続された複数の利用者端末に対戦ゲームを行わせるゲームシステムに用いられるゲームサーバ装置であって、
前記利用者端末から取得した対戦ゲームを進行させるための情報に従って対戦ゲームを進行させる通常モード処理手段と、
過去に行われた対戦ゲームにおける各利用者端末から取得した情報が順に登録された第2格納手段と、
前記利用者端末から取得した対戦ゲームを進行させるための情報が前記第2格納手段に登録された情報の順に従う場合に、前記第2格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第2情報生成手段と、
前記第2情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、
前記利用者端末からの設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段とを具備したことを特徴とするゲームサーバ装置。
A game server device used in a game system for causing a plurality of user terminals connected via communication means to perform a battle game,
Normal mode processing means for advancing a battle game according to information for advancing the battle game acquired from the user terminal;
Second storage means in which information acquired from each user terminal in a battle game performed in the past is registered in order;
When the information for advancing the battle game acquired from the user terminal follows the order of the information registered in the second storage means, the next battle game is advanced from the information registered in the second storage means Second information generating means for generating information for
Agent mode processing means for advancing a battle game according to information for advancing the game generated by the second information generation means;
A game server device comprising: a distribution unit that distributes whether the battle game is to be advanced by either the normal mode processing unit or the agent mode processing unit in accordance with a setting from the user terminal.
利用者のゲーム進行に要する時間を計時する計時手段と、
前記計時手段によって計時された時間をもとに、対戦ゲームを進行させるために利用者が要する消費時間傾向を登録する時間登録手段を具備し、
前記エージェントモード処理手段は、対戦ゲームを進行させるための情報の生成に際して、前記時間登録手段によって登録された消費時間時間傾向に応じた時間を消費することを特徴とする請求項1又2に記載のゲームサーバ装置。
A timing means for timing the time required for the user to proceed with the game;
Based on the time measured by the time measuring means, comprising time registration means for registering the consumption time trend required by the user to advance the battle game,
The agent mode processing means, in generating the information for advancing the competition game, according to claim 1 or 2, characterized in that time-consuming depending on the time consumed time trend registered by the time registration means Game server device.
通信手段を介して接続された他のゲーム端末装置との間で対戦ゲームを行うゲーム端末装置であって、
ユーザからの情報入力に基づき対戦ゲームを進行させる通常モード処理手段と、
予め編集構成された対戦ゲームを進行させるための情報が順に登録された第1格納手段と、
前記他のゲーム端末装置から取得した対戦ゲームを進行させるための情報が前記第1格納手段に登録された情報の順に従う場合に、前記第1格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第1情報生成手段と、
前記第1情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、
前記ゲーム端末装置における設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段と、
前記振り分け手段によって選択されたゲームを進行させるための情報を前記通信手段により送信する送信手段とを具備したことを特徴とするゲーム端末装置。
A game terminal device for playing a battle game with another game terminal device connected via a communication means,
Normal mode processing means for advancing the battle game based on information input from the user;
First storage means in which information for advancing a pre-edited battle game is registered in order;
When the information for advancing the battle game acquired from the other game terminal device follows the order of the information registered in the first storage means, the next battle game is determined from the information registered in the first storage means. First information generating means for generating information for progress;
Agent mode processing means for advancing the battle game according to information for advancing the game generated by the first information generation means;
A distribution unit that distributes whether the battle game is advanced by either the normal mode processing unit or the agent mode processing unit according to the setting in the game terminal device;
A game terminal apparatus comprising: a transmission unit configured to transmit, by the communication unit, information for proceeding with the game selected by the distribution unit.
通信手段を介して接続された他のゲーム端末装置との間で対戦ゲームを行うゲーム端末装置であって、
ユーザからの情報入力に基づき対戦ゲームを進行させる通常モード処理手段と、
過去に行われた対戦ゲームにおけるゲームを進行させる情報が順に登録された第2格納手段と、
前記他のゲーム端末装置から取得した対戦ゲームを進行させるための情報が前記第2格納手段に登録された情報の順に従う場合に、前記第2格納手段に登録された情報から次の対戦ゲームを進行させるための情報を生成する第2情報生成手段と、
前記第2情報生成手段によって生成されたゲームを進行させるための情報に従って対戦ゲームを進行させるエージェントモード処理手段と、
前記ゲーム端末装置における設定に応じて前記通常モード処理手段と前記エージェントモード処理手段の何れによって対戦ゲームを進行させるかを振り分ける振り分け手段と、
前記振り分け手段によって選択されたゲームを進行させるための情報を前記通信手段により送信する送信手段とを具備したことを特徴とするゲーム端末装置。
A game terminal device for playing a battle game with another game terminal device connected via a communication means,
Normal mode processing means for advancing the battle game based on information input from the user;
Second storage means in which information for advancing a game in a battle game performed in the past is registered in order;
When the information for advancing the battle game acquired from the other game terminal device follows the order of the information registered in the second storage means, the next battle game is determined from the information registered in the second storage means. Second information generating means for generating information for progress;
Agent mode processing means for advancing a battle game according to information for advancing the game generated by the second information generation means;
A distribution unit that distributes whether the battle game is advanced by either the normal mode processing unit or the agent mode processing unit according to the setting in the game terminal device;
A game terminal apparatus comprising: a transmission unit configured to transmit, by the communication unit, information for proceeding with the game selected by the distribution unit.
利用者のゲーム進行に要する時間を計時する計時手段と、
前記計時手段によって計時された時間をもとに、対戦ゲームを進行させるために利用者が要する消費時間傾向を登録する時間登録手段を具備し、
前記エージェントモード処理手段は、対戦ゲームを進行させるための情報の生成に際して、前記時間登録手段によって登録された消費時間時間傾向に応じた時間を消費することを特徴とする請求項4又5に記載のゲーム端末装置。
A timing means for timing the time required for the user to proceed with the game;
Based on the time measured by the time measuring means, comprising time registration means for registering the consumption time trend required by the user to advance the battle game,
The agent mode processing means, in generating the information for advancing the competition game, according to claim 4 also 5, characterized in that time-consuming depending on the time consumed time trend registered by the time registration means Game terminal device.
JP2001124583A 2001-04-23 2001-04-23 GAME SERVER DEVICE AND GAME TERMINAL DEVICE Expired - Fee Related JP4211234B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001124583A JP4211234B2 (en) 2001-04-23 2001-04-23 GAME SERVER DEVICE AND GAME TERMINAL DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001124583A JP4211234B2 (en) 2001-04-23 2001-04-23 GAME SERVER DEVICE AND GAME TERMINAL DEVICE

Publications (2)

Publication Number Publication Date
JP2002315968A JP2002315968A (en) 2002-10-29
JP4211234B2 true JP4211234B2 (en) 2009-01-21

Family

ID=18973945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001124583A Expired - Fee Related JP4211234B2 (en) 2001-04-23 2001-04-23 GAME SERVER DEVICE AND GAME TERMINAL DEVICE

Country Status (1)

Country Link
JP (1) JP4211234B2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3835378B2 (en) * 2002-08-30 2006-10-18 カシオ計算機株式会社 Game information processing apparatus and game information processing program
JP4118212B2 (en) * 2003-09-05 2008-07-16 明大 柾谷 Board game system via communication network
JP2006095110A (en) * 2004-09-29 2006-04-13 Aruze Corp Match-type game system and program
EP1854521A4 (en) * 2005-02-28 2009-02-18 Pandanet Inc Go playing system
KR100766545B1 (en) 2005-09-08 2007-10-11 엔에이치엔(주) Method and system for controlling game ai which copies input pattern of gamer and playing the game
KR100766546B1 (en) * 2005-09-09 2007-10-11 엔에이치엔(주) Method and system for controling playing of card game artificial intelligence
JP4157901B1 (en) 2007-03-30 2008-10-01 株式会社コナミデジタルエンタテインメント GAME SERVER DEVICE, GAME MANAGEMENT SYSTEM, AND RATING MANAGEMENT METHOD
JP4430721B2 (en) * 2008-05-12 2010-03-10 株式会社コナミデジタルエンタテインメント Competitive game system and opponent selection method in competitive game system
JP2011045649A (en) * 2009-08-28 2011-03-10 Konami Digital Entertainment Co Ltd Game device, game system, operation method, and program
JP2010113728A (en) * 2009-12-21 2010-05-20 Nintendo Co Ltd Option selection system using plurality of information processors
JP6304637B1 (en) * 2017-01-12 2018-04-04 株式会社コナミデジタルエンタテインメント GAME CONTROL DEVICE, GAME SYSTEM, AND PROGRAM
CN111773734B (en) * 2020-07-09 2024-01-30 网易(杭州)网络有限公司 Game-based duration control method, device and equipment

Also Published As

Publication number Publication date
JP2002315968A (en) 2002-10-29

Similar Documents

Publication Publication Date Title
JP5866039B1 (en) GAME CONTROL METHOD, COMPUTER AND CONTROL PROGRAM
JP5280712B2 (en) Server system
JP4211234B2 (en) GAME SERVER DEVICE AND GAME TERMINAL DEVICE
JP5135466B1 (en) Server device, program, and game system
JP6093845B2 (en) GAME CONTROL METHOD, COMPUTER AND CONTROL PROGRAM
JP7022725B2 (en) Control methods, computers and control programs
JP5997319B2 (en) Server system
JP7170381B2 (en) Program, Game Device, Server Device, and Game Execution Method
JP5758438B2 (en) Server system
JP6472980B2 (en) Program, computer system, server system, game system, and game apparatus
JP5183823B1 (en) Server apparatus and program
JP6608347B2 (en) GAME CONTROL METHOD, COMPUTER AND CONTROL PROGRAM
JP2007014808A (en) Game control method, storage medium stored with program capable of executing the method, and server
JP5735088B1 (en) GAME CONTROL METHOD, COMPUTER AND CONTROL PROGRAM
JP4922743B2 (en) Avatar provision system linked with game system
US20130260901A1 (en) Gaming apparatus, match-up control method, computer-readable non-transitory information recording medium having stored therein program, and program
JP2011045792A (en) Game system and web service-providing system
JP6770111B2 (en) Programs, computer systems and server systems
JP4758125B2 (en) GAME DEVICE, PROGRAM, AND INFORMATION STORAGE MEDIUM
JP6189995B2 (en) GAME CONTROL METHOD, COMPUTER AND CONTROL PROGRAM
JP6126278B1 (en) Program, control method, and information processing apparatus
US20130260900A1 (en) Gaming apparatus, match-up control method, computer-readable non-transitory information recording medium having stored therein program, and program
JP6599661B2 (en) Program, game device, and server system
JP2004255077A (en) Point management system and information processor
JP3424821B2 (en) Network game system, game server, game terminal, control method and program thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080723

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: 20081007

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: 20081020

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4211234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees