(57)【要約】【課題】  ハードウェアの種類や性能（ＣＰＵの性能、ハードディスクやメモリの記憶容量、ＯＳの種類、等）に制約のある携帯型情報端末等でも利用でき且つハードウェアの種類や性能に差があっても強さ（棋力）の変わらない通信ネットワークを介したボードゲームシステムを提供する。【解決手段】  ボードゲームにおける局面状態を一義的にコード化して表した文字列からなるファイル名を有する多数の局面ファイルを定跡に沿ってハイパーリンクにより関連付けてなる定跡局面ファイル群を備えると共に、該局面ファイルのファイル名に基づき局面状態を描画して次局面状態を提供する次局面提供手段を備える少なくとも１つのサーバと、該サーバと通信ネットワークを介して接続可能であって、ウェブ閲覧機能を備える少なくとも１つのクライアント端末とからなるようにした。【選択図】  図１
2005080785.tif 000002
【特許請求の範囲】
【請求項１】
ボードゲームにおける局面状態を一義的にコード化して表した文字列からなるファイル名を有する多数の局面ファイルを定跡に沿ってハイパーリンクにより関連付けてなる定跡局面ファイル群を備えると共に、該局面ファイルのファイル名に基づき局面状態を描画して次局面状態を提供する次局面提供手段を備える少なくとも１つのサーバと、該サーバと通信ネットワークを介して接続可能であって、ウェブ閲覧機能を備える少なくとも１つのクライアント端末とからなり、該サーバは、該次局面提供手段によって、該クライアント端末からの指し手の入力に対して、該定跡局面ファイル群中に該指し手に対応して関連付けられている局面ファイルが存在する場合には、該局面ファイルにハイパーリンクすると共に、該局面ファイルのファイル名に基づき、次局面状態を描画せしめるようにしたことを特徴とする通信ネットワークを介したボードゲームシステム。
【請求項２】
前記サーバは、次局面状態を探索により決定し、次局面状態を一義的にコード化して表した文字列からなるファイル名を有する局面ファイルを生成する非定跡局面ファイル生成手段を更に備え、前記次局面提供手段によって、前記クライアント端末からの指し手の入力に対して、前記定跡局面ファイル群中に該指し手に対応して関連付けられている局面ファイルが存在しない場合には、該非定跡局面ファイル生成手段に、次局面状態を探索により決定し、次局面状態を一義的にコード化して表した文字列からなるファイル名を有する局面ファイルを生成せしめると共に、該局面ファイルのファイル名に基づき、次局面状態を描画せしめるようにすることを特徴とする請求項１記載の通信ネットワークを介したボードゲームシステム。
【請求項３】
前記局面ファイルのファイル名は、ボードゲームにおける駒の種別、属性、ｘ座標位置及び／又はｙ座標位置を夫々１バイトの文字（半角文字）でコード化して表すことにより、局面状態を一義的にコード化して表したものであることを特徴とする請求項１又は２記載の通信ネットワークを介したボードゲームシステム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等の通信ネットワークを介して、人間とコンピュータとが対戦するコンピュータ対戦型の将棋、チェス及び囲碁等のボードゲームのサービスを提供するためのコンピュータシステムに関する。
【背景技術】
【０００２】
従来、人間とコンピュータとが対戦するコンピュータ対戦型のボードゲームのプログラム、例えば、コンピュータ対戦型将棋プログラム（以下、単に将棋プログラムという）は、ＣＤ−ＲＯＭ等の記録媒体に記録されて市販されているものを購入したり、インターネットで無償又は有償で公開されているものをダウンロードして入手した後、その将棋プログラムをパーソナル・コンピュータ（以下、単にＰＣという）のハードディスク等にインストールして実行し、ゲームに興じることができるようになっている。
【０００３】
ところで、ボードゲーム、例えば、将棋の場合、初期局面から勝敗を確定するために調べなければならないゲーム探索木の節点（可能性のある局面）の数は、１０200〜１０226あると言われている。従って、膨大な数のゲーム探索木の節点を限られた時間内に全て残らず探索し尽くして、最も適切な指し手を見付け出すことは実質的に不可能であることから、一般的な将棋プログラムにあっては、探索アルゴリズムを工夫したり、何手先までを先読みするかを限定したり、見込みのありそうな手だけを選択的に深く探索したりしている。また、序盤や終盤の定跡の多い局面では、ゲーム探索木を探索するよりも、いわゆる定跡に沿って指し手を決定した方が迅速且つ的確なものとなるため、近年では、１０万手前後の定跡データベースを有する将棋プログラムも一般的となってきている（非特許文献１〜６参照）。
【０００４】
このような将棋プログラムにあっては、限られた時間内により多くのゲーム探索木の節点をより深く先読みすることが必要であるため、ＣＰＵの性能に将棋プログラムの棋力（強さ）が大きく左右こととなるし、また、１０万手前後の定跡データベースを備えるとなると、ハードディスクやメモリの記憶容量にもそれ相応の容量が必要となり、更に、端末のＯＳ（Operating System）の種類が異なれば将棋プログラムの実行自体ができない場合もある。
【０００５】
近年のデスクトップ型ＰＣ等であれば、ハードウェアの種類や性能（ＣＰＵの性能、ハードディスクやメモリの記憶容量、ＯＳの種類、等）が問題となることは殆どないと言えるが、旧式のデスクトップ型ＰＣやノート型ＰＣ、ＰＤＡ（Personal Digital Assistants）或いは携帯電話等の携帯型情報端末にあっては、ハードウェアの種類や性能の制約から将棋プログラムの強さ（棋力）が著しく劣るとか、将棋プログラムの実行自体ができない等の問題があった。
【非特許文献１】「将棋とコンピュータ」、松原仁著、１９９４年１１月２０日初版第３刷発行、共立出版（株）
【非特許文献２】「コンピュータは名人を超えられるか」、飯田弘之著、２００３年２月１７日第２刷発行、（株）岩波書店
【非特許文献３】「コンピュータ将棋の進歩」、松原仁編著、１９９６年３月１０日初版第１刷発行、共立出版（株）
【非特許文献４】「コンピュータ将棋の進歩２」、松原仁編著、１９９９年９月３０日初版第２刷発行、共立出版（株）
【非特許文献５】「コンピュータ将棋の進歩３」、松原仁編著、２０００年５月２０日初版第１刷発行、共立出版（株）
【非特許文献６】「アマ４段を超える−コンピュータ将棋の進歩４」、松原仁編著、２００３年７月１０日初版第１刷発行、共立出版（株）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記した問題点に鑑みてなされたものであり、ハードウェアの種類や性能（ＣＰＵの性能、ハードディスクやメモリの記憶容量、ＯＳの種類、等）に制約のある携帯型情報端末等でも利用でき且つハードウェアの種類や性能に差があっても強さ（棋力）の変わらない通信ネットワークを介したボードゲームシステムを提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の通信ネットワークを介したボードゲームシステムは、ボードゲームにおける局面状態を一義的にコード化して表した文字列からなるファイル名を有する多数の局面ファイルを定跡に沿ってハイパーリンクにより関連付けてなる定跡局面ファイル群を備えると共に、該局面ファイルのファイル名に基づき局面状態を描画して次局面状態を提供する次局面提供手段を備える少なくとも１つのサーバと、該サーバと通信ネットワークを介して接続可能であって、ウェブ閲覧機能を備える少なくとも１つのクライアント端末とからなり、該サーバは、該次局面提供手段によって、該クライアント端末からの指し手の入力に対して、該局面ファイル群中に該指し手に対応して関連付けられている局面ファイルが存在する場合には、該局面ファイルにハイパーリンクすると共に、該局面ファイルのファイル名に基づき、次局面状態を描画せしめるようにしたことを特徴とする。
【０００８】
つまり、ＷＷＷサーバにおいて、ＨＴＭＬ、ＣＨＴＭＬ、ＸＭＬ等のハイパーテキスト記述言語のハイパーリンク（以下、単にリンクという。）の機能を利用して、ファイル名で局面状態を記録した局面ファイルを相互に関連付けて、定跡の棋譜を再現することにより、別途の定跡データベースやその制御のためのプログラムを用意する必要がなくなり、また、専用のプログラムをクライアント端末で動作させる必要もないので、インターネットに接続でき且つウエブ閲覧機能（ＷＷＷブラウザ）を備えるクライアント端末であれば、ハードウェアの種類や性能を問わず利用でき、強さ（棋力）も変わらないボードゲームを提供できるようになる。
【０００９】
前記サーバは、次局面状態を探索により決定し、次局面状態を一義的にコード化して表した文字列からなるファイル名を有する局面ファイルを生成する非定跡局面ファイル生成手段を更に備え、前記次局面提供手段によって、前記クライアント端末からの指し手の入力に対して、前記局面ファイル群中に該指し手に対応して関連付けられている局面ファイルが存在しない場合には、該非定跡局面ファイル生成手段に、次局面状態を探索により決定し、次局面状態を一義的にコード化して表した文字列からなるファイル名を有する局面ファイルを生成せしめると共に、該局面ファイルのファイル名に基づき、次局面状態を描画せしめるようにすることが好ましい。
【００１０】
これは、サーバの定跡局面ファイル群にはより多くの定跡の棋譜を再現できるように局面ファイルを用意することが望ましいが、前述したように、将棋等のボードゲームにあっては可能性のある局面の数は膨大なものとなるため、その全ての局面を局面ファイルとして用意することは理論上可能ではあるが現実的には困難と考えられるからである。
【００１１】
前記局面ファイルのファイル名は、ボードゲームにおける駒の種別、属性、盤上のｘ座標位置及びｙ座標位置を夫々１バイト（８ビット）の文字（半角１文字）でコード化し、１の駒につき４バイト（半角４文字）で表現することにより、局面状態を一義的にコード化して表したものであることが好適である。これにより、ファイル名だけで局面状態を一義的にコード化して表すことができ、ＨＴＭＬ等のリンク構造で容易に関連付けて、定跡の棋譜を再現できるので、サーバには別途の定跡データベースを管理制御するためのＤＢＭＳ（DataBase Management System）プログラム等が不要となり、また、クライアント端末はウエブ閲覧機能（ＷＷＷブラウザ）を備えるものであれば、ハードウェアの種類や性能を問わず利用でき、汎用性が高い。
【発明の効果】
【００１２】
本発明によれば、ハードウェアの種類や性能（ＣＰＵの性能、ハードディスクやメモリの記憶容量、ＯＳの種類、等）に制約のある携帯型情報端末等でも利用でき且つハードウェアの種類や性能に差があっても強さ（棋力）の変わらない通信ネットワークを介したボードゲームシステムを提供することができるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の一つの実施の形態を添付図面に基づいて説明するが、この図示例は例示的に示されるもので、本発明の技術思想から逸脱しない限り、種々の変更が可能なことはいうまでもない。また、以下の説明では、ボードゲームとして、主に将棋の場合を説明するが、チェス、オセロ、五目並べ、囲碁等のその他のボードゲームにも適用できる。
【００１４】
図１は、本発明の通信ネットワークを介したボードゲームシステムの全体的機器構成の一例を示すブロック図である。図２は、本発明システムの次局面提供手段による処理の流れの一例を示すフロー図である。図３は、図２における描画処理の詳細な処理の流れの一例を示すフロー図である。図４は、図２におけるクリック処理の詳細な処理の流れの一例を示すフロー図である。図５は、図４における再描画処理の詳細な処理の流れの一例を示すフロー図である。図６は、図２におけるリンク処理の詳細な処理の流れの一例を示すフロー図である。図７は、クライアント端末のモニタ画面におけるゲーム開始画面の一例を示す概念説明図である。図８は、クライアント端末のモニタ画面における初期局面状態の将棋盤の一例を示す概念説明図である。図９は、クライアント端末のモニタ画面における将棋盤上の駒を選択した状態の一例を示す概念説明図である。図１０は、クライアント端末のモニタ画面における将棋盤上の選択した駒の移動先を指定した状態の一例を示す概念説明図である。図１１は、クライアント端末のモニタ画面における次局面状態の将棋盤の一例を示す概念説明図である。
【００１５】
図１において、符号２はサーバであり、通信ネットワークであるインターネットＮに接続されている。サーバ２は、ＷＷＷサーバソフトウエア（ｈｔｔｐデーモンプログラム）が動作するサーバであり、図示しないが、ハードディスク等の記憶媒体やモデム等のネットワーク通信機器その他の必要なハードウェアを備える。インターネットＮには、クライアント端末として、ノート型ＰＣ１２、デスクトップ型ＰＣ１４、携帯電話１６等が接続され、ウエブ閲覧機能（ＷＷＷブラウザ）により、サーバ２とＴＣＰ／ＩＰプロトコルの通信が可能である。なお、クライアント端末としては、ウエブ閲覧機能（ＷＷＷブラウザ）を備えるものであれば、メーカや機種等は特に限定されない。なおまた、サーバ２は１台に限られず、サーバ２ｎのように同様の機能を備えるものをｎ台（ｎは１以上）用意するようにしてもよい。後述するように本発明システムにおける局面ファイルの数は膨大なものになり得るため、これらの管理制御を分散処理するためである。
【００１６】
符号４は、次局面提供手段である。また、符号６は、多数の局面ファイルからなる局面ファイル群である。次局面提供手段４は、定跡局面ファイル群６に基づき、定跡データを提供するものであり、例えば、ＨＴＭＬ等から呼び出されるＰｅｒｌ言語やＣ言語によるＣＧＩ（Common Gateway Interface）プログラムや、ＨＴＭＬ等に命令文を埋め込むＰＨＰ（Personal Home Pages）スクリプト、Ｊａｖａ（Ｒ）スクリプト、ＶＢスクリプト或いはＡＳＰ（Active Server Pages）等によればよい。なお、以下の説明では、主にＪａｖａ（Ｒ）スクリプトの場合を説明している。
【００１７】
定跡局面ファイル群６における各局面ファイルは、ＨＴＭＬ、ＣＨＴＭＬ、ＸＭＬ等のハイパーテキスト記述言語によるものであり、前述したように、そのファイル名が、ボードゲームにおける駒の種別、属性、盤上のｘ座標位置及びｙ座標位置を夫々１バイトの文字（半角１文字）でコード化し、４バイト（半角４文字）で表現することにより、局面状態を一義的にコード化して表したものとなっている。
【００１８】
例えば、将棋であれば、駒数は４０であるため、１駒につき４バイト（半角４文字）でコード化すれば、４０×４＝１６０バイト（半角１６０文字）で１の局面状態を表現できる。現在、利用できるサーバ用ＯＳのファイルシステムの多くは２５５バイト（半角２５５文字）程度までのファイル名を許容するため、十分余裕をもって、１の局面状態を表現することができる。具体例としては、以下のように定義する。
【００１９】
（駒の種別）
歩：Ｈ
香車：Ｙ
桂馬：Ｅ
銀：Ｇ
金：Ｉ
飛車：Ｓ
角：Ａ
王：Ｏ
（駒の属性）
ユーザの将棋盤上の生駒（成っていない駒）：０
ユーザの将棋盤上の成駒（成っている駒）：１
ユーザの駒台上の持駒：２
コンピュータの将棋盤上の生駒：３
コンピュータの将棋盤上の成駒：４
コンピュータの駒台上の持駒：５
（駒のｘ座標位置）
将棋盤（又は駒台）上の左から横の升目：１〜９
（駒のｙ座標位置）
将棋盤（又は駒台）上の上から縦の升目：１〜９
【００２０】
上記のように定義された場合、ユーザの「９七歩」は、歩：Ｈ、ユーザの将棋盤上の生駒：０、将棋盤上のｘ座標：１、将棋盤上のｘ座標：７であるから「Ｈ０１７」と表現できるし、ユーザが「銀」を一つだけ持っていた場合は、銀：Ｇ、ユーザの駒台上の持駒：２、ユーザの駒台上のｘ座標：１、ユーザの駒台上のｙ座標：１であるから、「Ｈ２１１」と表現できる。
【００２１】
これにより、ゲーム開始時の将棋盤全体の初期局面状態をＨＴＭＬ形式のファイル名で表すとすると、「H017H027H037H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H323H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」というファイル名で一義的にコード化して表現することができる。
【００２２】
このような局面ファイルを多数用意して定跡局面ファイル群６を構成し、定跡の棋譜に沿って、各局面ファイルをＨＴＭＬ等のリンク構造で関連付け、定跡の棋譜を再現できるようにする。
【００２３】
符号１０は、非定跡局面ファイル生成手段であり、上記次局面提供手段４の定跡局面ファイル群６中に、ユーザの指し手に対応して関連付けられている次手の局面ファイルが存在しない場合に、次手を探索して決定し、次手の局面状態を一義的にコード化して表した文字列からなるファイル名を有し且つ該ファイル名に基づき局面状態を描画するようにされた次手の局面ファイルを生成し、該局面ファイルのファイル名に基づき、次手の局面状態を描画せしめるものである。
【００２４】
非定跡局面ファイル生成手段１０における次手の探索アルゴリズムは、反復深化法によるαβ探索アルゴリズム等の公知のアルゴリズムによればよく、特に限定されない（非特許文献１〜６参照）。
【００２５】
駒画像ファイル８は、例えば、将棋の駒であれば、歩、香車、桂馬、銀、金、飛車、角、王の生駒と成駒の画像ファイルを用意したものであり、適宜、局面状態を描画する際に用いればよい。なお、駒画像ファイル８は必ずしも必須ではなく、クライアント端末が携帯電話１６である場合ように、表示画面の大きさに制限がある場合や通信速度が遅い場合等には、各駒をテキスト文字で表示して局面状態を描画するようにすればよい。
【００２６】
図２は、本発明システムの次局面提供手段による処理の流れの一例を示すフロー図である。まず、図２の開始画面表示（ステップ１０１）では、ユーザのノート型ＰＣ１２、デスクトップ型ＰＣ１４、携帯電話１６等のクライアント端末からインターネットＮを介してサーバ２にアクセスすると、開始画面を表示する。この開始画面では、ユーザが先手又は後手を選択できるようにし、例えば、図７に示した如くの画面がユーザのクライアント端末のモニタ画面に表示されるようにする。図７は、クライアント端末のモニタ画面におけるゲーム開始画面の一例を示す概念説明図である。図７において、符号２０はＷＷＷブラウザである。ＷＷＷブラウザ２０は、アドレス部２２を備え、現在の所在地であるＵＲＬ（Uniform Resource Locator）を表示している。そして、ユーザが先手又は後手を選択できるように、ユーザが先手の場合のリンク２４、コンピュータが先手の場合のリンク２６からなるメニューを表示する。
【００２７】
図２のステップ１０２では、開始画面表示（ステップ１０１）において、ユーザのクライアント端末からユーザの先手又は後手の選択があると、ユーザが先手（図７のリンク２４をクリック）ならば描画処理（ステップ１０３）に分岐し、コンピュータが先手（図７のリンク２６をクリック）ならばリンク処理（ステップ１０４）に分岐する。
【００２８】
図２の描画処理（ステップ１０３）は、図３に示した如くのサブルーチン処理を行うものである。図３は、図２における描画処理の詳細な処理の流れの一例を示すフロー図である。描画処理（ステップ１０３）では、まず、現在の所在地（ＵＲＬ）を変数 now_url に代入する（ステップ１０３１）。ユーザが先手であるので、初期局面状態を表す局面ファイルのＵＲＬ、具体例としては、「http://xxx.xxx.xxx.xxx/H017H027H037H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H323H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」を代入する。
【００２９】
そして、局面状態はファイル名にコード化されて表現されているので、局面状態変数 now_url からファイル名だけを取り出して、変数 file_name に代入する（ステップ１０３２）。例えば、上記ＵＲＬの具体例で言えば、「H017H027H037H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H323H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351」を代入する。
【００３０】
初期局面状態では、将棋盤上のいずれの駒も選択状態ではないので、駒の選択状態に関する変数は初期化する（ステップ１０３３）。例えば、選択駒のｘ座標（１〜９）を表す変数を SelectedPointX とし、選択駒のｙ座標を表す変数（１〜９）を SelectedPointY とし、選択駒の属性（０〜５）を表す変数を SelectedPointInf であるとすると、これらにいずれも「−１」を代入して初期化すればよい。
【００３１】
将棋の場合、駒数は４０であるので、配列を４０確保する（ステップ１０３４）。例えば、配列名 ko とすると、ko[40] として配列を確保する。また、１の駒につき４バイト（半角４文字）で表現されているため、変数 file_name を４文字ごとに、構造体 ko[i].koma_all （ｉは０〜３９。以下同じ。）に代入する（ステップ１０３５）。例えば、上記ファイル名の具体例で言えば、ko[0].koma_all には「H017」が、ko[1].koma_all には「H027」が、ko[2].koma_all には「H037」が代入され、最後に、ko[39].koma_all に「O351」が代入されるまでを for ループ等で繰り返して代入する。
【００３２】
次いで、各配列の構造体から、夫々の駒の情報を１文字毎に切り出して、構造体 ko[i].name 、ko[i].inf 、ko[i].x 、ko[i].y に格納する（Ｓ１０３６）。例えば、上記構造体の具体例で言えば、ko[0].koma_all の「H017」から、駒の種類を意味する１文字目「H」を ko[1].name に、駒の属性を意味する２文字目「0」を ko[1].inf に、駒のｘ座標位置を意味する３文字目「1」を ko[1].x に、駒のｙ座標位置を意味する４文字目[7]を ko[1].y に格納する。
【００３３】
そして、ＨＴＭＬ等のテーブルタグにより、将棋盤（９升×９升）、ユーザの駒台（９升×５升）、コンピュータの駒台（９升×５升）からなる表を作成し、上記各駒の情報に基づき、将棋盤上又は駒台上の升目に駒が描き出されるようにする（ステップ１０３７）。上記具体例で言えば、ko[1].name が「H」、ko[1].inf が「0」、ko[1].x が「1」、ko[1].y が「7」であるので、歩（Ｈ）がユーザの将棋盤上の生駒（０）として、ｘ座標：１でｙ座標：７の位置にあることになるので、ユーザの「９七歩」として描き出されるようにすればよい。この際、必要なら、駒画像ファイル８（図１参照）から「歩」の画像にリンクして表示するようにしてもよい。
【００３４】
このようにして、描画処理（ステップ１０３）は、初期局面状態を描画するものであり、例えば、図８に示した如くの画面がユーザのクライアント端末のモニタ画面に表示されるようにする。図８は、クライアント端末のモニタ画面における初期局面状態の将棋盤の一例を示す概念説明図である。図８において、ＷＷＷブラウザ２０はアドレス部２２にＵＲＬを表示すると共に、このＵＲＬのファイル名に対応する局面状態を表示している。符号３０は将棋盤であり、符号４０はコンピュータの駒台であり、符号５０はユーザの駒台である。将棋盤３０、コンピュータの駒台４０及びユーザの駒台５０は、夫々、ＨＴＭＬ等のテーブルタグにより作成されている。符号３２はｘ座標：１でｙ座標：１の升目であり、符号３４はｘ座標：９でｙ座標：１の升目であり、符号３６はｘ座標：１でｙ座標：９の升目であり、符号３８はｘ座標：９でｙ座標：９の升目である。また、夫々の対応する駒の位置に駒画像ファイル８の画像がリンクにより表示されている。
【００３５】
なお、図２のリンク処理（ステップ１０４）は、図６に示した如くのサブルーチン処理を行うものであるが、後述するリンク処理（ステップ１０９）と同様のものであるので、説明の都合上、ステップ１０９において説明する。
【００３６】
図２のステップ１０５では、ユーザのクライアント端末からの駒の選択があったか否かを判断する。駒の選択があった場合には、クリック処理（ステップ１０６）に分岐し、駒の選択がない場合には、駒の選択があるまでループして待機する。
【００３７】
図２のクリック処理（ステップ１０６）は、図４に示した如くのサブルーチン処理を行うものである。図４は、図２におけるクリック処理の詳細な処理の流れの一例を示すフロー図である。クリック処理（ステップ１０６）では、まず、駒を選択済みか否かを判断する。駒を選択済みか否かの判断は、前述した駒の選択状態に関する変数（例えば、SelectedPointX、SelectedPointY、SelectedPointInf）に「−１」以外の値が代入されている駒があるか否かにより判断する。初期局面状態では、これらの変数にはいずれの駒にも「−１」が代入されて初期化されていることから（図３のステップ１０３３参照）、どの駒も未だ選択済みでない（変数の値は「−１」）と判断されて、ステップ１０６２に分岐し、クリックされた選択駒の情報を駒の選択状態に関する変数に代入する（ステップ１０６２）。例えば、ユーザのクライアント端末から、ユーザの「８七歩」がクリックされていたとすると、選択駒のｘ座標を表す変数 SelectedPointX に「２」を代入し、選択駒のｙ座標を表す変数 SelectedPointY に「７」を代入し、選択駒の属性を表す変数 SelectedPointInf に「０」を代入する。
【００３８】
他方、駒の選択状態に関する変数（例えば、SelectedPointX、SelectedPointY、SelectedPointInf）に「−１」以外の値が既に代入されている駒がある場合は、駒は既に選択済みであると判断され、ステップ１０６３に分岐する。ステップ１０６３ではクリックした駒が選択済みの駒であるか否かを判断し、選択済みの駒である場合には、ステップ１０６４に分岐して、駒の選択状態に関する変数（例えば、SelectedPointX、SelectedPointY、SelectedPointInf）に「−１」を代入し、その駒の選択状態を解除する。クリックした駒が選択済みの駒でない場合は、選択済みの駒が将棋盤上にある場合であって（ステップ１０６１）、クリックしたのが選択済みの駒ではない場合であるから（ステップ１０６３）、選択済みの駒を移動させたい升目をクリックした場合か、若しくは、選択済みの駒以外の駒をクリックした場合であり、ユーザの操作ミスであるので、何もしないでクリック処理（ステップ１０６）のサブルーチン処理を終了（出口に分岐）する。
【００３９】
再描画処理（ステップ１０６５）では、ステップ１０６２で駒の選択状態に関する変数に「−１」以外の値が代入された場合（選択状態になった場合）と、逆に、ステップ１０６４で駒の選択状態に関する変数に「−１」が代入された場合（非選択状態になった場合）に、モニタ画面上の駒の選択状態の表示を変更する処理を行う。この再描画処理（ステップ１０６５）は、図５に示した如くのサブサブルーチン処理を行うものである。図５は、図４における再描画処理の詳細な処理の流れの一例を示すフロー図である。
【００４０】
この再描画処理（ステップ１０６５）では、前述した図２の描画処理（ステップ１０３）におけるステップ１０３７で作成された将棋盤３０、ユーザの駒台５０、コンピュータの駒台４０について（図８参照）、再度、ＨＴＭＬ等のテーブルタグによる表の作成を行う。まず、コンピュータの駒台４０のテーブルを再作成し（ステップ１０６５１）、将棋盤３０のテーブルを再作成する（ステップ１０６５２）。
【００４１】
そして、将棋盤３０上に選択状態の駒があるか否かを判断する（ステップ１０６５３）。将棋盤３０上の駒（駒の属性が「０」又は「１」の駒）に選択状態の駒があるか否かの判断は、上述したように、駒の選択状態に関する変数（例えば、SelectedPointX、SelectedPointY、SelectedPointInf）に「−１」以外の値が代入されている駒があるか否かにより行う。
【００４２】
将棋盤３０上に選択状態の駒がある場合（ステップ１０６５３でＹＥＳの場合）は、その選択状態の駒についてのみ、その駒画像を選択状態を表す（反転表示や色違い等の）駒画像ファイル８にリンクを差し替える（ステップ１０６５４）。このリンクの差し替えは、ＨＴＭＬ等のアンカータグの書き換えにより行われる。また、将棋盤３０上に選択状態の駒がない場合（ステップ１０６５３でＮＯの場合）は、ステップ１０６５４による駒画像ファイル８の差し替えは行わずにスキップする。
【００４３】
次いで、ユーザの駒台５０上に選択状態の駒があるか否かを判断する（ステップ１０６５５）。ユーザの駒台５０上の駒（駒の属性が「２」の駒）に選択状態の駒があるか否かの判断は、上述したように、駒の選択状態に関する変数（例えば、SelectedPointX、SelectedPointY、SelectedPointInf）に「−１」以外の値が代入されている駒があるか否かにより行う。
【００４４】
ユーザの駒台５０上に選択状態の駒がある場合（ステップ１０６５６でＹＥＳの場合）は、その選択状態の駒についてのみ、その駒画像を選択状態を表す（反転表示や色違い等の）駒画像ファイル８にリンクを差し替える（ステップ１０６５７）。このリンクの差し替えは、ＨＴＭＬ等のアンカータグの書き換えにより行われる。また、ユーザの駒台５０上に選択状態の駒がない場合（ステップ１０６５６でＮＯの場合）は、ステップ１０６５７による駒画像ファイル８のリンクの差し替えは行わずにスキップし、再描画処理（ステップ１０６５）のサブサブルーチン処理を終了し（図５の出口）、呼び出し元のクリック処理（ステップ１０６）に戻り、次いで、クリック処理（ステップ１０６）のサブルーチンも終了する（図４の出口）。
【００４５】
このようにして、クリック処理（ステップ１０６）は、ユーザの選択状態の駒について、選択状態を表す（反転表示や色違い等の）駒画像ファイル８に差し替えるものであり、例えば、図９に示した如くの画面がユーザのクライアント端末のモニタ画面に表示されるようにする。図９は、クライアント端末のモニタ画面における将棋盤上の駒を選択した状態の一例を示す概念説明図である。図９において、符号６０はマウスポインタ、符号６２は選択状態の駒である。選択状態の駒６２（「７七歩」）は、色違いの駒画像ファイル８に差し替えられて表示されるので、ユーザの選択した駒であることが一目瞭然となる。
【００４６】
図２のステップ１０７では、上記クリック処理（ステップ１０６）で選択した駒の移動先をクリックしたか否かを判断する。つまり、ユーザのクライアント端末から指し手の入力があったか否かを判断する。選択済みの駒の移動先をクリックした場合（ステップ１０７でＹＥＳの場合）は、リンク処理（ステップ１０９）に分岐する。移動先をクリックしていない場合（ステップ１０７でＮＯの場合）は、更に、それが選択済みの駒をクリックしたのか否かを判断する（ステップ１０８）。
【００４７】
選択済みの駒をクリックした場合（ステップ１０８でＹＥＳの場合）は、前述したステップ１０６と同様のクリック処理（ステップ１１０、図４参照）を行い、その駒の選択状態を解除して、再度、駒の選択があるまでループする（ステップ１０５）。選択済みの駒をクリックしていない場合（ステップ１０８でＮＯの場合）は、選択済みの駒の移動先でもなく（ステップ１０７）、選択済みの駒をクリックしたのでもない場合であるから、将棋のルール上、駒の移動できない升目をクリックしたものと判断できるので、有効な移動先のクリック（ステップ１０７）又は選択済みの駒をクリック（ステップ１０８）があるまでループする。
【００４８】
図２のリンク処理（ステップ１０９）は、図６に示した如くのサブルーチン処理を行うものである。図６は、図２におけるリンク処理の詳細な処理の流れの一例を示すフロー図である。リンク処理（ステップ１０９）では、まず、前述したように選択済みの駒の移動先がクリックされているので（図２のステップ１０７でＹＥＳの場合）、その駒が移動先で成ることができるか否かを判断する（ステップ１０９１）。成ることができる場合（ステップ１０９１でＹＥＳの場合）には、成るか否かのダイアログボックス等を表示して、ユーザのクライアント端末から選択させる（ステップ１０９２）。成ることが選択された場合には、駒の属性として、ユーザの将棋盤上の成駒「１」を設定し、成らないことが選択された場合には、ユーザの将棋盤上の生駒「０」のままとする。また、成ることができない場合（ステップ１０９１でＮＯの場合）も、駒の属性はユーザの将棋盤上の生駒「０」のままとする。
【００４９】
これにより、ユーザの選択済み駒の移動先及びその駒の成る成らないが決定するので、ユーザのクライアント端末からの指し手の入力が確定する。例えば、図１０に示した如く、選択済み駒６２（「７七歩」）について、マウスポインタ６０で移動先をクリックすることにより、ユーザのクライアント端末から「７六歩」という指し手の入力があったことが確定する。図１０は、クライアント端末のモニタ画面における将棋盤上の選択した駒の移動先を指定した状態の一例を示す概念説明図である。図１０の例で言えば、初期局面状態を表す局面ファイルのＵＲＬが「http://xxx.xxx.xxx.xxx/H017H027H037H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H323H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」であったとすると、「H037」（７七歩）を選択して、「H036」（７六歩）という指し手をユーザのクライアント端末から入力されたということが確定する。
【００５０】
そして、ステップ１０９３では、ユーザのクライアント端末からの指し手の入力に対して、定跡局面ファイル群６の中で関連付けられている局面ファイルにリンクする。即ち、上記具体例で言えば、初期局面状態の局面ファイル「H017H027H037H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H323H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」には、ユーザの「７六歩」（H036）という指し手に対するコンピュータの指し手を指した次局面状態の局面ファイルのＵＲＬがリンクにより関連付けられている。
【００５１】
例えば、ユーザの「７六歩」（H036）という指し手に対するコンピュータの指し手が「３四歩」（H374）であるとすると、「http://xxx.xxx.xxx.xxx/H017H027H036H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H323H333H343H353H363H374H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」という次局面状態の局面ファイルが関連付けられている。また、ユーザの「７六歩」（H036）という指し手に対するコンピュータの指し手が毎回同じであると、ゲーム性がないので、別のコンピュータの指し手、例えば、「８四歩」（H324）を指す局面ファイル「http://xxx.xxx.xxx.xxx/H017H027H036H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H324H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」等にもリンクし得るようにして、出易い指し手と出難い指し手の重み付けをしておき、乱数生成関数等で出力した値を基にコンピュータの指し手を決定するようにしてもよい。
【００５２】
ステップ１０９４では、上記次局面状態の局面ファイルへのリンク（ステップ１０９３）が成功したか否かを判断する。ユーザのクライアント端末からの指し手の入力に対して、定跡局面ファイル群６の中で関連付けられている局面ファイルが存在していない場合や、前述したようにサーバ２ｎのような複数のサーバで分散処理している場合に、何らかの原因で通信状態が悪い等により、次局面状態の局面ファイルへのリンク（ステップ１０９３）が失敗することが考えられるからである。
【００５３】
リンクが成功した場合（ステップ１０９４でＹＥＳの場合）は、リンク処理（ステップ１０９）のサブルーチン処理を終了する（図６の出口）。リンクが失敗した場合（ステップ１０９４でＮＯの場合）は、リンク失敗処理（ステップ１０９５）に分岐する。リンク失敗処理（ステップ１０９５）では、非定跡局面ファイル生成手段１０によって、次局面状態を探索により決定し、次局面状態を一義的にコード化して表した文字列からなるファイル名を有する局面ファイルを生成せしめる。例えば、上記具体例で言えば、ユーザの「７六歩」（H036）という指し手に対するコンピュータの指し手として「８四歩」（H324）を指す局面ファイルが定跡局面ファイル群６の中に無かった場合には、「H017H027H036H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H324H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」というファイル名の局面ファイルを生成する。なお、新たに生成された局面ファイルは、定跡局面ファイル群６中に含めて、次回以降の同一局面で利用するようにしてもよい。また、非定跡局面ファイル生成手段１０における次手の探索アルゴリズムは、反復深化法によるαβ探索アルゴリズム等の公知のアルゴリズムによればよく、特に限定されない（非特許文献１〜６参照）。そして、リンク処理（ステップ１０９）のサブルーチン処理を終了する（図６の出口）。
【００５４】
図２のステップ１１１では、詰みの判定を行い、詰んでいると判断された場合（ステップ１１１でＹＥＳの場合）には、ユーザの勝ち（コンピュータの負け）又はコンピュータの勝ち（ユーザの負け）を宣言したウインドウやウェブページを表示する（図２の終了）。なお、詰みの判定も公知のアルゴリズムによればよく、特に限定されない（非特許文献１〜６参照）。
【００５５】
他方、詰んでいないと判断された場合（ステップ１１１でＮＯの場合）には、ゲームを続行し、前述した描画処理（ステップ１０３）に再び分岐して、局面ファイルのファイル名に基づき、次局面状態を描画するようにする。例えば、図１１に示した如くの画面がクライアント端末のモニタ画面に表示されることとなる。図１１は、クライアント端末のモニタ画面における次局面状態の将棋盤の一例を示す概念説明図である。図１１において、符号６４はユーザの指し手の駒であり、符号６６はコンピュータの指し手の駒である。つまり、図１０でユーザの指し手「７六歩」がマウスポインタ６０により指示されることによって、上記リンク処理（ステップ１０９）では、ユーザの指し手の駒６４（「７六歩」）と、コンピュータの指し手の駒６６（「８四歩」）が指された状態の次局面状態の局面ファイル「H017H027H036H047H057H067H077H087H097Y019Y099E029E089G039G079I049I069S088A028O059H313H324H333H343H353H363H373H383H393Y311Y391E321E381G331G371I341I361S322A382O351.html」にリンクし、描画処理（ステップ１０３）では、この局面ファイルのファイル名に基づき、次局面状態を描画するようになっている。
【産業上の利用可能性】
【００５６】
上述した実施の形態では、主に将棋の場合を説明したが、本発明システムは、チェス、オセロ、五目並べ、囲碁等のその他のボードゲームにも適用可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明の通信ネットワークを介したボードゲームシステムの全体的機器構成の一例を示すブロック図である。
【図２】本発明システムの次局面提供手段による処理の流れの一例を示すフロー図である。
【図３】図２における描画処理の詳細な処理の流れの一例を示すフロー図である。
【図４】図２におけるクリック処理の詳細な処理の流れの一例を示すフロー図である。
【図５】図４における再描画処理の詳細な処理の流れの一例を示すフロー図である。
【図６】図２におけるリンク処理の詳細な処理の流れの一例を示すフロー図である。
【図７】クライアント端末のモニタ画面におけるゲーム開始画面の一例を示す概念説明図である。
【図８】クライアント端末のモニタ画面における初期局面状態の将棋盤の一例を示す概念説明図である。
【図９】クライアント端末のモニタ画面における将棋盤上の駒を選択した状態の一例を示す概念説明図である。
【図１０】クライアント端末のモニタ画面における将棋盤上の選択した駒の移動先を指定した状態の一例を示す概念説明図である。
【図１１】クライアント端末のモニタ画面における次局面状態の将棋盤の一例を示す概念説明図である。
【符号の説明】
【００５８】
２，２ｎ：サーバ、４：次局面提供手段、６：定跡局面ファイル群、８：駒画像ファイル、非定跡局面ファイル生成手段、１２：ノート型ＰＣ、１４：デスクトップ型ＰＣ、１６：携帯電話、、２０：ＷＷＷブラウザ、２２：アドレス部、２４，２６：リンク、３０：将棋盤、４０：コンピュータの駒台、５０：ユーザの駒台、６０：マウスポインタ、Ｎ：インターネット。                                                        
【図１】
2005080785.tif 000003
【図２】
2005080785.tif 000004
【図３】
2005080785.tif 000005
【図４】
2005080785.tif 000006
【図５】
2005080785.tif 000007
【図６】
2005080785.tif 000008
【図７】
2005080785.tif 000009
【図８】
2005080785.tif 000010
【図９】
2005080785.tif 000011
【図１０】
2005080785.tif 000012
【図１１】
2005080785.tif 000013