JP4211234B2 - GAME SERVER DEVICE AND GAME TERMINAL DEVICE - Google Patents
GAME SERVER DEVICE AND GAME TERMINAL DEVICE Download PDFInfo
- 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
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
[0012]
As shown in FIG. 1, the
[0013]
The
[0014]
The
[0015]
The
[0016]
The
The
The
The game program stored in the
[0017]
As shown in FIG. 1, the
[0018]
The
[0019]
The
[0020]
The Ethernet (registered trademark) I /
[0021]
The
[0022]
The
[0023]
FIG. 2 shows an example of a structure of the start information command transmitted / received between the
[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
[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) (
[0027]
FIG. 4 shows an example of the record structure of the
[0028]
FIG. 5 shows an example of the record structure of the fixed
[0029]
A serial number (J) is set for each record stored in the
[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
[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
[0032]
When the event that the connection button is touched is detected, the
[0033]
When detecting an event that the area on the shogi board surface is touched, the
[0034]
In the
[0035]
Next, an outline of the operation in the
[0036]
The
[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
[0039]
The contents of the user record UR obtained from the
[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
[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
[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
[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
[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
[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
[0050]
On the other hand, the self-handling process distribution process (step C4) is executed as shown in the flowchart shown in FIG. The
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
[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
[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
[0062]
On the other hand, when the start indicates termination (step K2), the
[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
[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
[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
[0068]
Further, the
[0069]
On the other hand, if neither of the conditions in steps G1 and G4 is applicable, the
[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
[0073]
Here, the
[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
[0077]
If the
[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
[0079]
The
[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
[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
[0091]
Next, the self-side start reception process will be described with reference to the flowchart shown in FIG.
[0092]
The
[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
[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
[0105]
In the above description, the previous game record registered in the user record UR of the
[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
In the system configuration shown in FIG. 1, the
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
FIG. 5 is a diagram showing an example of a record structure of a fixed-
FIG. 6 is a flowchart for explaining an outline of operations in the
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.
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)
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 |
-
2001
- 2001-04-23 JP JP2001124583A patent/JP4211234B2/en not_active Expired - Fee Related
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 |