以下、この発明を添付図面に基づいて説明する。
[発明の利用例の概略]
図1および図2に、本発明の利用例の概略を示す。これらの利用例は、ユーザの立場から見た本発明の意義を簡易に説明するためのものであって、システムの構成よび作用を厳密に説明するものではなく、後述する具体的な実施の形態とは必ずしも整合しない場合がある。また、これらの図はあくまでも例を示すものであり、本発明を実施するための具体的態様を限定するものではない。さらに、これらの図に関連して説明される効果は、本発明に本質的でないものを含む。
図1は、ユーザが個人的に本発明を利用する場合の例である。本発明は、リバーシ等のボードゲームに関連して用いられる。まずユーザは、コンピュータによって構成される仮想的な競技者を作成する。これは、たとえば戦術情報を登録する(すでに登録されている場合にはこれを変更する)ことによって行われる。戦術情報は、たとえば局面を評価するための情報であり、ボードゲームのある局面がどの程度望ましいかを表現できるようになっている。仮想的な競技者は、この戦術情報に基づき、最も望ましい局面を実現する手を打つように行動する。このように、局面をベースにして戦術情報を組み立てることができ、容易に仮想的な競技者を作成することができる。
次に、ユーザは仮想的な競技者を評価する。たとえば、評価すべき対象として特定の戦術情報に着目して多数回の試合を繰り返し(たとえば仮想的な競技者どうしで)、その戦術情報が試合結果にどのように影響したかを表す頒布図と、その戦術の評価結果を表すコメントを表示させる。このようにして、戦術の評価を視覚的に行うことができる。
また、たとえばユーザは、特定の局面を入力し、その局面において手の選択に影響する戦術をすべて抽出し、実行可能な手のそれぞれについて全戦術の総合評価を表示させることにより、各戦術を検証する。この結果に応じ、ユーザは戦術情報を変更することができ、さらに変更した戦術情報に基づいて検証を繰り返すことができる。このようにして戦術を改良し、より汎用性の高いものとすることができる。
このようにして戦術情報を完成させた後、対戦相手の戦術情報(たとえば他人が同様にして作成した戦術情報)との間で試合を実施する。この際、ユーザが複数の仮想的な競技者を作成していた場合には、そのいずれかを選択することができる。試合結果は表示されるとともに試合結果データベースに記録される。
試合の後は、その試合を分析することができる。たとえば、分析したい試合を選択し、そのうち特定の局面を選択し(たとえばN手目)、その局面で実行可能な手をすべて表示させた上で、各手の評価に影響した戦術を表示させる。このようにして、敗因となった戦術を特定する等の分析が可能となる。
図2は、トーナメントが開催される場合の例である。トーナメントWebサイトは、インターネット等に向けてトーナメントの案内を行う。これを見たユーザは、各自、競技者プログラム作成システムを用いて戦術情報を作成し、エントリを実行する。トーナメントWebサイトはエントリを受け付けてトーナメント表を作成し、公表するとともに、試合を実施する。
試合の実施は、エントリの際に受け付けた各ユーザの戦術情報に従って、自動的に行われるので、ユーザに精神的・時間的な負担はかからない。また、ユーザは試合結果を分析することにより戦術のさらなる改良を行うことができる。
[実施の形態1]
図3に、本発明の実施の形態1に係る競技者プログラム管理システム10の構成の例を示す。競技者プログラム管理システム10は、ボードゲームの競技者プログラムを作成および実行することにより管理するシステムである。
ボードゲームは、たとえばオセロゲームまたはリバーシ、囲碁、五目並べまたは連珠、将棋、チェス、チェッカー、等を含む。「ボードゲーム」という語の意味は、当業者が適宜定義可能であるが、たとえば、複数の競技者が、ゲーム盤上のピースの状況によって表される局面を変更する手を打つことにより進行するゲームであるということができる。競技者は、人間であってもよいし、コンピュータ等を用いて実現される仮想的な競技者であってもよい(なお本発明の実施においては、少なくとも1人の競技者は仮想的な競技者とする必要がある)。ピースとは、石、駒、カード、ペグ、等を含む。「手を打つ」とは、局面の状況を変更する動作を実行することを意味し、たとえばゲーム盤上にピースを置く、ゲーム盤上のピースの姿勢または向きを変える(裏返す等)、ゲーム盤上の特定の位置に配置されているピースを別の位置に移動させる、ゲーム盤上に配置されているピースをゲーム盤から取り除く、ピースの所有者を変更する、等の行為を含む。また、すべての手が局面の状況を変更するものである必要はなく、たとえばゲーム盤に影響を及ぼさない手が定義されてもよい(自分の手番をパスする、特定の宣言を行う、等)。
実施の形態1では、競技者プログラム管理システム10は、単独で本発明に係るプログラム管理システムを構成することができる。競技者プログラム管理システム10は公知のコンピュータとしての構成を有し、演算を行う演算手段11と、情報を格納する記憶手段12と、情報の入力を受け付ける入力装置13と、情報を外部に出力する出力装置14とを備える。演算手段11はたとえばCPU(中央処理装置)を含み、記憶手段12はたとえば半導体メモリ、ハードディスクドライブ、ソリッドステートドライブ等を含み、入力装置13はたとえばキーボード、マウス、タッチパネル等を含み、出力装置14はたとえば液晶ディスプレイ、スピーカ、プリンタ等を含む。また、競技者プログラム管理システム10は、通信ネットワークに対して情報の入出力を行う通信手段等を備えてもよい。
記憶手段12は、競技者プログラムP1と、プログラム作成プログラムP2と、試合実行プログラムP3と、戦術情報D1と、試合情報D2とを格納する。競技者プログラムP1は、コンピュータ(たとえば競技者プログラム管理システム10)を、ボードゲームの仮想的な競技者として機能させるものである。たとえば、競技者プログラムP1は、ある局面について可能な手をそれぞれ評価する機能と、評価の結果に基づいて実際に打つべき手を決定する機能とを、コンピュータに実現させる。(より具体的には、図12等を参照して後述する。)
プログラム作成プログラムP2は、コンピュータ(たとえば競技者プログラム管理システム10)を、「競技者プログラムを作成するためのシステム」(競技者プログラム作成システム)として機能させるものである。たとえば、プログラム作成プログラムP2は、競技者プログラムP1を作成する機能を、コンピュータに実現させる。
試合実行プログラムP3は、コンピュータ(たとえば競技者プログラム管理システム10)を、試合実行システムとして機能させるものである。たとえば、試合実行プログラムP3は、ボードゲームの規則に従い、複数の競技者(一部または全部が仮想的な競技者であってもよい)から手を表す情報を順次受け付ける機能と、その情報または手の結果(局面等)を出力する機能とをコンピュータに実現させ、これによって試合を進行させる。また、試合が終了すると勝敗等を含む結果を出力する機能を、コンピュータに実現させる。
図4に、戦術情報D1の構成の例を示す。この例はリバーシに対応するものである。戦術情報D1の各レコードは、それぞれ1つの戦術の単位を表す。戦術は、その戦術を特定する戦術番号と、その戦術の名称を表す戦術名と、その戦術のポイントと、その戦術に対応する局面の特徴を表すパターンとを関連付ける。また、図示するようにゲームの進行状況に応じたその戦術の有効期間をさらに関連付けてもよい。
図5および図6を用いて、パターンの具体例を説明する。この例は、図4の戦術番号「1」、すなわち「隅リーチ」という名称の戦術に含まれるパターンの一例である。パターンは、ゲーム盤上の位置を表す情報(図5の「座標」)と、その位置のピースの状況(図5の「状況」)を表す情報との組を含む。
座標は、ゲーム盤を表す1次元以上の座標系における位置を表す情報である。たとえばリバーシの場合には、図6に示すように、ゲーム盤の各マスを(行,列)という2次元直交座標系で表現することが可能である。この例では、絶対座標系において各マスの位置を表現すると、左上隅が(1,1)、右上隅が(1,8)、左下隅が(8,1)、右下隅が(8,8)となる。また、特定のマス(たとえば(4,4))を基準(原点)とする相対座標系を定義し、この相対座標系において各マスの位置を表現すると、左上隅は(−3,−3)となる。
図5等に示すように、各パターンは、座標が絶対指定であるか相対指定であるかを表す情報を含む。図5の例では絶対座標が指定されており、この場合には、パターンの座標がすべてゲーム盤の座標と一致する必要がある。一方、相対座標が指定されている場合には、パターンを平行移動させたものの座標がゲーム盤の座標と一致してもよい。また、各パターンは、独立したパターンであるか(すなわち連結なし)、または他のパターンと連結されるパーツであるかを示す情報(区分)を含む。図5は独立パターンの例である。
各パターンは、1つ以上の座標を含み、各座標に状況を関連付ける。また、図5に示すように、さらに重要度を関連付けてもよい。これを視覚的に表現したものが図6である。
「状況」とは、その位置を基準とするピースの状況を表す。図5の例では、座標(1,1)すなわち左上隅の状況として「そのマスは空白」という状況が指定されている。図6ではこれを「△」記号で示す。また、図5の例では、いくつかのマスについて、「そのマスに相手の石が存在」または「そのマスに自分の石が存在」という状況が指定されており、図6では相手の石を「○」記号、自分の石を「●」記号により示す。これら以外の状況が指定可能であってもよく、たとえば「自分または相手、いずれかの石が存在」という状況が指定可能であってもよい。また、ボードゲームの規則に応じ、様々な状況が定義可能である。たとえば、ピースの姿勢または向き、所有者、種類等を定義してもよい。
なお、この例ではピースの状況は各座標について1つのみのマスを参照するが、これはより広い範囲のマスを指定する表現であってもよい(たとえば、後述するように「そのマスから上に向けて相手の石が連続している」等)。なお、状況が限定されていない座標については、図6では記号を配置せず空白として示している。これらの座標の状況はパターンには影響しない。
「重要度」とは、その状況がそのパターンにどの程度本質的なものであるか否かを表す。重要度は、たとえば1個のメインパターンと、0個以上の小ヒットパターン(サブパターン)とを用いて定義されてもよい。メインパターンは、各状況がそのパターンに必須である(図5では「必須」)か、または他の状況に応じて選択的に無視される(図5では「選択」)かを指定する。図6では、「必須」のマスは背景を白で示し、「選択」のマスは背景を斜線で示している。
本実施形態では、あるパターンがある局面にヒット(適合)すると判定されるためには、「必須」と指定された座標のすべてについて、各座標の状況が、ゲーム盤の局面の状況と一致することが必要である。
また、本実施形態では、「選択」と指定された座標については、状況の組み合わせを定義する小ヒットパターンのいずれかに、選択的に一致することが必要である。図5の例では3個の小ヒットパターンが定義されており、たとえば座標(3,3)に自分の石が存在する場合には小ヒットパターン1に適合する。この場合には、座標(4,4)および座標(5,5)の状況は任意となり、それらの座標には自分の石があってもよく、相手の石があってもよく、空白であってもよい。
各小ヒットパターンの一致判定は、たとえば、小ヒットパターン1、小ヒットパターン2、…、小ヒットパターンn…、小ヒットパターンN(ただしNは小ヒットパターンの最大数、1≦n≦N)の順に行い、あるnについて小ヒットパターンnが定義されていない場合にはその時点で処理を終了すればよい。
なお、小ヒットパターンの指定は省略してもよく(言い換えると、小ヒットパターンの数を0個としてもよく)、その場合にはメインパターンに指定されたすべての状況について重要度を「必須」とすればよい。
ここで、メインパターンにおける「選択」指定の座標のヒット状況に応じ、パターンのヒット程度を「大ヒット」または「小ヒット」と表現することができる。たとえば、「選択」指定の座標を含むすべての座標がヒットした場合には、そのパターンは「大ヒット」したということができる。一方で、「必須」指定の座標はすべてヒットしたが、「選択」指定の座標(一部または全部)がヒットしていない場合には、そのパターンは「小ヒット」したということができる。なお、ここで説明した「大ヒット」の状態を単に「ヒット」と呼んでもよい。
また、本実施形態では、パターンが局面にヒットするか否かを判定する際に、パターンの向きに依存しないヒット判定が行われる。「パターンの向き」とは、パターンの配置角度および反転状態を意味し、たとえば2次元直交座標系のゲーム盤については「0°回転、反転なし」「90°回転、反転なし」「180°回転、反転なし」「270°回転、反転なし」「0°回転、反転あり」「90°回転、反転あり」「180°回転、反転あり」「270°回転、反転あり」の8種類が定義される。
これらの向きは、たとえば座標を次のように展開することによって得ることができる。展開するための演算は向きに応じて8種類定義され、したがって展開後の座標も8組得られることになる。元の位置の座標(行,列)を(R0,C0)とし、展開後の位置の座標を(Rk,Ck)ただし1≦k≦8とし、絶対値を||記号によって表すと、
(R1,C1)=(R0,C0)
(R2,C2)=(R0,|C0−9|)
(R3,C3)=(|R0−9|,|C0−9|)
(R4,C4)=(|R0−9|,C0)
(R5,C5)=(C0,R0)
(R6,C6)=(C0,|R0−9|)
(R7,C7)=(|C0−9|,|R0−9|)
(R8,C8)=(|C0−9|,R0)
…(式1)
たとえば図6のパターンをこのように展開することにより、4隅すべてに対応するパターンが生成されることになる。(なお図6の例では複数のパターンが重複するため異なるパターンは4種類となる。)リバーシの場合には展開後の座標について8種類すべてを用いると好適であるが、場合によって、または他のボードゲームの場合には、これらのうち一部を省略してもよく、また、他の向きを定義してもよい。
図4に戻り、有効期間およびポイントについて説明する。有効期間とは、ゲームの進行状況を表す値の範囲であり、たとえば手数(何手目であるか)で表現される。「隅リーチ」戦術は、1手目〜58手目までの局面についてはヒット判定の対象となるが、59手目以降では対象とならず、ヒットする可能性はない(たとえば、59手目にパターンが局面にヒットしていても、その戦術は局面にヒットしたとは判定されない)。
ポイントとは、そのパターンの評価値を表す。本実施形態では、ポイントが高いほど有利な局面(またはその特徴)を表すものとする。このようにパターンごとに指定されたポイントに基づき、局面全体のポイントが決定される。たとえば、ある局面について、ヒットした各戦術のポイントの総和をとることにより、その局面のポイントを算出するようにしてもよい。ここで、ポイントは戦術ごとに指定可能なので、局面を評価する際の戦術間の重みを任意に指定することができる。
パターンに対するポイントの定義は、特定の数値であってもよく、数値範囲であってもよい。たとえば「隅リーチ」戦術では、固定のポイント値として「500」が指定されており、「相手の石を増やす」戦術では、ポイントの範囲として「1〜62」が指定されている。
図7に、図4の他のパターンの具体例を示す。ここで、図7の「相手の石を増やす」戦術のパターンの例を用いて、ポイントの範囲が指定された場合の、特定のポイント値の決定方法の例を説明する。この戦術では、ポイントに1〜62という範囲が指定されている。指定されたポイント範囲に幅がある場合には、実際の局面に応じて、当該範囲内の特定の値を決定するための基準が設けられる。この基準は、たとえば戦術中に重要度が「選択」として指定された座標(図6および図7の斜線マス)のヒット状況であってもよい。その場合には、すべての「選択」座標について状況がヒットした場合には範囲内の最大値が与えられ、いずれの「選択」座標についても状況がヒットしなかった場合には範囲内の最小値が与えられ、その中間の場合にはその中間の値が与えられる。中間の値の算出方法は適宜設計可能であるが、たとえばヒットした座標の数の関数として定義してもよく、具体的にはヒットした座標の数に対して線形に算出することができる。
図7の相手の石を増やす」戦術のパターンの例では、ポイントの範囲が1〜62であり、斜線範囲に36個の座標(マス)が指定されている。このため、たとえばそのうちの10個のマスに相手の石が存在していた場合、このパターンのポイントは1+(62−1)×(10/36)≒18として決定可能である。
図8〜図10を用いて、パターンの別の具体例を説明する。(図8の例では小ヒットパターンは定義されていないが、図5と同様に定義されていてもよい。)パターンは、この例のように、他のパターンと連結可能なパーツとして定義されてもよい。図8および図9の例は、図4の戦術番号「7」すなわち「中割り」という名称の戦術と、戦術番号「8」すなわち同じく「中割り」という名称の戦術とに含まれるパターンの一例である。(なお図9および下記説明等からわかるように、戦術番号7のものは斜め方向のパターンに対応し、戦術番号8のものは縦横方向のパターンに対応する。)これらのパターンについては相対座標が指定されており、基準位置(0,0)はゲーム盤上のどの位置にヒットしてもよい。すなわち、パターンを平行移動させたものの座標がゲーム上の座標と一致してもよい。図9では便宜上(4,4)の位置に「●」記号を示すが、これは(4,4)の位置に限らずヒット可能であることになる。
また、図8のようにパーツであるパターンは、最低連結パーツ数の指定を含む。最低連結パーツ数は、そのパーツがある局面にヒットすると判定されるために最低限必要な連結パーツの数を表す。ある局面において、その戦術と、その戦術に連結可能な戦術とを合わせて、合計で最低連結パーツ数以上の回数ヒットしていれば、そのパーツ(または、連結されたパーツの組)はその局面にヒットしたと判定される。(なお、複数のパーツが互いに連結可能であるか否かの判定基準は適宜設計可能であるが、具体例については図10に関連して後述する。)
言い換えると、連結されるパーツのヒット数の合計が最低連結パーツ数以上となった場合には、それらのパーツのポイントは、他にヒットした戦術のポイントと同様に、局面の評価に影響するが、連結されるパーツのヒット数の合計が最低連結パーツ数未満となった場合には、それらのパーツのポイントは、局面の評価に影響しない。
戦術番号7の戦術「中割り」のパターンにおいて、座標(−1,−1)には、「そのマスから左上に向かって、相手の石が1個以上連続し、その直後のマスは空白」という状況が指定されている。まずこのパターンの相対基準座標(0,0)がゲーム盤上の絶対座標(4,4)に対応する場合を考えると、この戦術は、次のいずれかに該当する局面すべてにヒットすることになる。
(i)(4,4)に自分の石があり、(3,3)に相手の石があり、(2,2)が空白である。
(ii)(4,4)に自分の石があり、(3,3)および(2,2)に相手の石があり、(1,1)が空白である。
次に、このパーツの相対基準座標(0,0)がゲーム盤上の絶対座標(4,4)に対応する状態を、時計回りに90°回転させた場合を考える。これは、上記(式1)の(R8,C8)=(|C0−9|,R0)に対応する。この場合には、絶対座標(R0,C0)=(4,4)は絶対座標(R8,C8)=(5,4)に対応する。したがって、相対基準座標(0,0)は、回転後は絶対座標(5,4)に対応することになる。また、この場合には左下に向かってヒット判定が行われ、次のいずれかに該当する局面すべてにヒットすることになる。
(i)(5,4)に自分の石があり、(6,3)に相手の石があり、(7,2)が空白である。
(ii)(5,4)に自分の石があり、(6,3)および(7,2)に相手の石があり、(8,1)が空白である。
同様に、このパーツの相対基準座標(0,0)がゲーム盤上の絶対座標(4,4)に対応する状態を時計回りに180°回転させると、相対基準座標(0,0)は絶対座標(5,5)に対応することになる。また、この場合には右下に向かってヒット判定が行われ、次のいずれかに該当する局面すべてにヒットすることになる。
(i)(5,5)に自分の石があり、(6,6)に相手の石があり、(7,7)が空白である。
(ii)(5,5)に自分の石があり、(6,6)および(7,7)に相手の石があり、(8,8)が空白である。
同様に、このパーツの相対基準座標(0,0)がゲーム盤上の絶対座標(4,4)に対応する状態を時計回りに270°回転させると、相対基準座標(0,0)は絶対座標(4,5)に対応することになる。また、この場合には右上に向かってヒット判定が行われ、次のいずれかに該当する局面すべてにヒットすることになる。
次のいずれかに該当する局面すべてにヒットする。
(i)(4,5)に自分の石があり、(3,6)に相手の石があり、(2,7)が空白である。
(ii)(4,5)に自分の石があり、(3,6)および(2,7)に相手の石があり、(1,8)が空白である。
次に、戦術番号7の「中割り」戦術の相対基準座標(0,0)がゲーム盤上の絶対座標(5,5)に対応する場合を考えると、このパーツは、次のいずれかに該当する局面すべてにヒットすることになる。
(i)(5,5)に自分の石があり、(4,4)に相手の石があり、(3,3)が空白である。
(ii)(5,5)に自分の石があり、(4,4)および(3,3)に相手の石があり、(2,2)が空白である。
(iii)(5,5)に自分の石があり、(4,4),(3,3)および(2,2)に相手の石があり、(1,1)が空白である。
このパーツの相対基準座標(0,0)がゲーム盤上の絶対座標(5,5)に対応する状態を時計回りに180°回転させると、相対基準座標(0,0)は絶対座標(4,4)に対応することになる。また、この場合には右下に向かってヒット判定が行われ、次のいずれかに該当する局面すべてにヒットすることになる。
(i)(4,4)に自分の石があり、(5,5)に相手の石があり、(6,6)が空白である。
(ii)(4,4)に自分の石があり、(5,5)および(6,6)に相手の石があり、(7,7)が空白である。
(iii)(4,4)に自分の石があり、(5,5),(6,6)および(7,7)に相手の石があり、(8,8)が空白である。
なお、この場合に時計回りに90°回転したものおよび270°回転したものについては、個別の説明を省略する。
戦術番号8の「中割り」戦術についても、同様にヒット判定が行われる。このようにして、戦術番号7および8の「中割り」戦術のヒット判定を総合して図示したものが図10である。図10(a)〜(c)はいずれも同一の局面を表し、図10(a)が(4,4)を基準としたヒット状況を、図10(b)が(4,5)を基準としたヒット状況を、図10(c)が(6,3)を基準としたヒット状況を、それぞれ矢印で示す。
複数のパーツが互いに連結可能であるかどうかの判定基準は、任意に定義可能であるが、本実施形態では、戦術名が同一であり、かつ、相対基準座標が所定の位置関係にあるパーツは互いに連結可能であるとする。所定の位置関係としては、たとえば同一または隣接する位置関係とすることができる。この定義によれば、たとえば戦術番号7のパーツが絶対座標(4,4)を相対基準座標としてヒットし、同じ戦術番号7のパーツが絶対座標(4,5)を相対基準座標としてもヒットし、さらに戦術番号8のパーツが絶対座標(4,5)を相対基準座標としてヒットした場合には、これらのパーツはすべて連結可能となる。この判定基準を用いると、図10の例では、(a)に示すようにヒットしたパーツと、(b)に示すようにヒットしたパーツとは連結可能であるが、これらと(c)に示すようにヒットしたパーツとは連結可能ではないと判定される。
なお、「隣接」とは、縦、横、または斜めに連続して位置することを言い、すなわち座標の行の差の絶対値が1以下でありかつ座標の列の差の絶対値も1以下であることを言う。あるいは、「隣接」とは、縦または横に連続して位置することを言うとしてもよい。すなわち、座標の行が一致しかつ座標の列の差の絶対値が1以下であるか、または、座標の行の差の絶対値が1以下でありかつ座標の列が一致することを言うとしてもよい。
図10(a)では、「中割り」戦術(戦術番号7および8)が合計6方向にヒットしている。また、図10(b)では、「中割り」戦術が合計6方向にヒットしている。これらのパーツは互いに連結可能であるので、合計で12個の連結パーツがヒットすることになる。この数は、「中割り」戦術についての最低連結パーツ数以上となるので、これらの連結されたパーツはこの局面にヒットすると判定されることになる。
さらに、図10(c)では、「中割り」戦術が合計4方向にヒットしているが、上述のようにこれは図10(a)および(b)に示すものとは連結可能ではないので、図10の局面では合計で4個の連結パーツしかヒットしないことになる。この数は、「中割り」戦術についての最低連結パーツ数未満となるので、これらの連結されたパーツはこの局面にヒットしないと判定されることになる。
以上説明するように、戦術情報D1は、局面の特徴を表す1つ以上のパターンと、そのパターンのポイント(評価値)とを関連付ける、局面評価規則を含むということができる。
競技者プログラム管理システム10は、戦術情報D1に含まれる局面評価規則の入力を受け付ける機能(局面評価規則入力機能)を備える。たとえば、プログラム作成プログラムP2は、このような機能をコンピュータに実現させる。この機能は、たとえば所定の構成を有する画面(規則入力画面)を介して実現することができる。
図11に、規則入力画面の構成の例を示す。本実施形態では、規則入力画面の例として、パターンとポイントとの関連に加え、戦術に含まれる他の情報も入力可能な戦術登録画面20を用いる。図11の例は、「隅リーチ」戦術に対応するものである。戦術登録画面20は、ボードゲームの盤面を表す盤面画像21と、ピースの状況を表すピース画像22とを含む。盤面画像21は、ゲーム盤上の座標を識別可能なものであればどのような画像であってもよい。たとえば実際のゲーム盤またはこれを模したものであってもよく、実際のゲーム盤を簡略化したものであってもよく、抽象的に表現されたものであってもよい。
盤面画像21は複数であってもよい。図11では、紙面上寄りに表示されるメイン盤面画像と、紙面下寄りに表示される3つのサブ盤面画像とが示されている。たとえば、メイン盤面画像はメインパターンに対応し、サブ盤面画像はそれぞれ小ヒットパターンに対応するものとして表示されてもよい。小ヒットパターンをいくつ定義するか(または、サブ盤面画像をいくつ表示させるか)は、利用者の入力に応じて適宜変更可能としてもよい。
ピース画像22は、たとえば盤面画像21に重ねて、盤面画像21の座標(マス)のいずれかに表示される。ピース画像22は、リバーシの場合は白い石または黒い石を表すものであり、この例では、自分の石は「●」記号で表され、相手の石は「○」記号で表されている。なお、この例では各マスの背景を白色で示しているが、カラー表示が可能な場合には、背景を緑色とすると実際のゲーム盤に近い表現とすることができる。
盤面画像21にはピース画像22以外の画像が表示されてもよい。たとえばパターンに含まれるピースの状況を表す画像が表示されてもよい。図11の例では、「△」記号の画像は、「そのマスは空白」すなわちいずれの石も存在しないという状況を表す。また、図11には示さないが、「?」記号の画像が、「自分または相手、いずれかの石が存在」という状況を表してもよく、矢印記号の画像が、「そのマスから特定方向に向かって、相手の石が1個以上連続し、その直後のマスは空白」という状況を表してもよい。
盤面画像21には、各座標の状況の重要度を表す画像が表示されてもよい。図11のメイン盤面画像の例では、記号が表示されかつ背景が空白であるマスは、そのマスの状況の重要度が「必須」であることを表し、背景に斜線が表示されたマスは、そのマスの状況の重要度が「選択」であることを表す。この例では、重要度が「選択」であることを示すのに各マスの背景を斜線としているが、カラー表示が可能な場合には、背景をゲーム盤の他のマスとは異なる色(たとえば白色)とすることにより示してもよい。また、図11のサブ盤面画像の例では、「X」記号が表示されたマスは、その小ヒットパターンにおいて、そのマスの状況の重要度が「任意」であることを表す。
競技者プログラム管理システム10の使用者は、戦術登録画面20に対する入力操作を介して、戦術情報D1を入力することができる。たとえば、ある戦術に含まれるパターンは、盤面画像21またはピース画像22に対する操作を介して入力可能である。具体例として、盤面画像21上の特定のマスをクリックした後に、「1」キーを押下することにより、そのマスに「●」記号を表示させ、そのマスに自分の石が存在するという状況を入力することができる。この操作は、図11の例では「1:コンピュータ」という表記により説明されている。同様に、「2」キーは相手の石が存在するという状況に対応し、「3」キーは自分または相手いずれかの石が存在するという状況に対応し、「4」キーはそのマスが空白であるという状況に対応する。
また、サブ盤面画像においては、これらに加え、「X」キーはそのマスの重要度が「任意」であることに対応する。ここで、いずれかのサブ盤面画像において重要度が「任意」であるという指定がなされたマスは、メイン盤面画像において背景が斜線となり、メインパターンにおける重要度が「選択」となる。いずれのサブ盤面画像においても重要度が「任意」であるという指定がなされていないマスは、メインパターンにおける重要度が「必須」となる。
このように、競技者プログラム管理システム10は、盤面画像21上の特定のマスを指定する操作と、そのマスにおけるピースの状況を指定する操作とを介して、パターンの入力を受け付けることができる。なお、図11のように盤面画像21が複数表示されている場合には、必要に応じ、各盤面画像の同期処理が行われてもよい。たとえば、メイン盤面画像において、あるマスに対して「2」キーが入力された場合には、メイン盤面画像と、すべてのサブ盤面画像とにおいて、そのマスに「○」記号が表示されてもよい。
また、図11に示すように、戦術登録画面20において他の情報を入力可能であってもよい。この例では、戦術登録画面20は、戦術名を入力可能なフィールドと、そのパターンの区分が独立パターンであるかパーツであるかを入力可能なチェックボックスと、戦術の有効期間を入力可能なフィールドと、戦術のポイントまたはその範囲を入力可能なフィールドとを含む。また、図11には示さないが、そのパターンの座標が絶対指定であるか相対指定であるかを示す情報を入力可能なフィールドを含んでもよく、そのパターンがパーツである場合に最低連結パーツ数を入力可能なフィールドを含んでもよい。また、戦術登録画面20は、その戦術を戦術情報D1に格納することを指示する操作部品(クリック可能なボタン画像等)を含んでもよい。
なお、戦術登録画面20の出力は、たとえば競技者プログラム管理システム10のディスプレイ等に表示することにより実行可能であるが、通信ネットワークに対する画面データの送信(画像、HTML形式またはXML形式等)によっても実行可能である。画面データが送信される場合には、その画面データを受信した別のコンピュータが、戦術登録画面20を表示するとともに戦術登録画面20に対する操作を受け付けてもよい。
このようにして、競技者プログラム管理システム10は、プログラム作成プログラムP2を実行することにより、戦術情報D1の入力を受け付ける。また、競技者プログラム管理システム10は、プログラム作成プログラムP2を実行することにより、戦術情報D1に基づき、競技者プログラムP1を作成する。以下、競技者プログラムP1について説明する。
競技者プログラムP1は、コンピュータ(たとえば競技者プログラム管理システム10)を、ボードゲームの仮想的な競技者として機能させるプログラムである。この仮想的な競技者は、戦術情報D1に含まれる各戦術のポイントに基づき、様々な局面に対して、その局面で打つべき手を決定することができる。たとえば、仮想的な競技者は、特定の局面を表す情報の入力を受け付ける機能と、複数の手のそれぞれについて、手を打った後の局面を、戦術(局面評価規則)に従って評価することにより、各手のポイント(評価値)を決定する評価値決定機能と、各手のポイント(評価値)に基づき、打つべき手を選択する選択機能と、選択された手を表す情報を出力する機能と、を備える。競技者プログラムP1は、このような評価値決定機能および選択機能を、コンピュータに実現させるプログラムとして構成することができる。
局面の評価の具体的方法および手順等は任意に設計可能であり、公知の方法を用いてもよいが、たとえば次のようにして行うことができる。
図12および図13を用いて、局面を評価する方法の一例を説明する。図12は、局面を評価するために仮想的な競技者が実行する処理の流れの例を示すフローチャートの例であり、図13は、評価内容の具体例である。
まず、仮想的な競技者は、特定の局面を表す情報の入力を受け付ける(ステップS1)。局面の表現はどのような形式であってもよい。たとえば、手番(何手目であるか)と、ゲーム盤上の座標とピースの状況との組み合わせとによって表されてもよい。他の公知の形式に従ってもよい。また、局面は、試合実行プログラムP3を実行するコンピュータ(以下「試合実行装置」という)からの出力として取得されるものであってもよい。
仮想的な競技者は、入力された局面において、可能な自分の手をすべて探索する(ステップS2)。手の探索に必要な他の情報(ボードゲームの規則等)は、仮想的な競技者の記憶手段(たとえば記憶手段12)にあらかじめ記憶されていてもよい。図13では、ステップS2の結果として、現在の局面から3通りの手(黒い石で表す自分の手A、BおよびC)を打つことが可能であると判断された例を示す。
次に、仮想的な競技者は、可能な自分の手のそれぞれに対して、可能な相手の手をすべて探索する(ステップS3)。すなわち、ステップS1において取得した局面から、その自分の手を打った直後の局面を基準として、その局面において可能な相手の手をすべて探索する。図13では、ステップS3の結果として、自分の手Aに対しては3通りの手(白い石で表す相手の手A1、A2およびA3)を打つことが可能であり、自分の手Bに対しては4通りの手(相手の手B1、B2、B3およびB4)を打つことが可能であり、自分の手Cに対しては2通りの手(相手の手C1およびC2)を打つことが可能であると判断された例を示す。
次に、仮想的な競技者は、可能な相手の手のそれぞれについてポイントを算出する(ステップS4)。たとえば、上述のように、相手の手を打った直後の局面について、戦術情報D1を8通りの向きに展開させつつ適用することにより、局面のポイントを算出する。
ここで、具体的なプログラムを設計する際の戦術情報D1の利用方法は、任意に決定することができる。たとえば、自分の石を「S」という文字で表し、相手の石を「A」という文字で表せば、テキストデータ処理によって戦術情報D1を扱うことができる。また、各局面のポイントは、たとえば、その局面について自分を基準として算出した第1ポイントと、その局面について相手を基準として算出した第2ポイントとの関数として算出可能である。具体的な関数は、たとえば単純な減算としてもよく、第1ポイントから第2ポイントを減算した値をその局面のポイントとしてもよい。この際、小ヒットが発生した場合には、図4に示すようにヒットした座標の数に応じてポイントが計算される。
ここで、「自分を基準としてポイントを算出する」とは、ポイントの算出においてパターンをそのまま用いることを意味する。すなわち、パターン中に定義される「自分の石」を、局面における「自分の石」に対応させるとともに、パターン中に定義される「相手の石」を、局面における「相手の石」に対応させてパターンを適用することを意味する。ヒットしたパターンすべて(ただし上述のようにパーツであって最低連結パーツ数未満しかヒットしなかったものを除く)のポイントを合計することにより、自分を基準とした場合のポイントを算出することができる。
また、「相手を基準としてポイントを算出する」とは、ポイントの算出において自分の石と相手の石とを入れ替えることを意味する。すなわち、パターン中に定義される「自分の石」を、局面における「相手の石」に対応させるとともに、パターン中に定義される「相手の石」を、局面における「自分の石」に対応させてパターンを適用することを意味する。この場合には、上記と逆に、自分の石を「A」という文字で表し、相手の石を「S」という文字で表せば、自分を基準としてポイントを算出する処理をそのまま適用することができる。ヒットしたパターンすべて(ただし上述のようにパーツであって最低連結パーツ数未満しかヒットしなかったものを除く)のポイントを合計することにより、相手を基準とした場合のポイントを算出することができる。
したがってたとえば、自分が有利なパターンについてはポイントが大きくなるように各戦術のポイントを調整しておけば、自分が有利な局面についてはその局面のポイントが大きくなることになる。
次に、仮想的な競技者は、ステップS2で探索した自分の手のそれぞれについて、相手から見て最適な相手の手を選択する(ステップS5)。「相手から見て最適」とは、たとえば相手から見て最も有利な局面に対応する手を意味する。これは、自分から見た場合には、最も不利な局面すなわちポイントが小さい局面に対応する手となる。図13の例では、自分の手Aに対する相手の手のうち、最も小さいポイントを与える手はA3であり、したがってこの手が選択される。同様に、自分の手Bに対しては相手の手B1が、自分の手Cに対しては相手の手C1が、それぞれ選択される。
次に、仮想的な競技者は、選択された相手の手に基づき、自分から見て最適な自分の手を選択する(ステップS6)。「自分から見て最適」とは、たとえば自分から見て最も有利な局面すなわちポイントが大きい局面に対応する手を意味する。図13の例では、自分の手Bに対して選択された相手の手のポイントが10であり、自分の手AおよびCに対して選択された相手の手のポイントよりも大きいので、自分の手Bが選択される。この際、自分の手に対して選択された相手の手のポイントを、その自分の手のポイントとして表してよい(図13の例では、自分の手Aのポイントは−10であり、自分の手Bのポイントは10であり、自分の手Cのポイントは−30であると表現することができる)。
このようにして自分の手を選択すれば、相手も最適な手を打つことを想定した上で、相手の手による自分への不利益を最小とすることができるので、ボードゲームの戦術としては妥当な手の選び方であるということができる。ただし、自分の手を選択する方法はこれに限らず、様々な変形が可能である。たとえば、状況に応じてポイント以外の基準を用いてもよい。
ポイント以外の基準としては、ヒットした戦術の数や、相手の手の数(その局面において相手は何通りの手を打つことができるか)を用いることができる。たとえば、相手の手のうち戦術がヒットするものが1つもない場合には、相手の手の数を最小とする自分の手(図13の例では自分の手C)を選択してもよい。また、たとえば、相手の手のうち戦術がヒットしないものが1つでもあり、かつ、自分の手のポイントがすべて0未満である場合にも同様に、相手の手の数を最小とする自分の手を選択してもよい。
さらに他の基準に基づいて手を選択してもよい。たとえば乱数に基づいて自分の手を選択してもよい。この場合には、自分の手を最もポイントが大きいものから順に所定数選択し、そのうちからランダムに選択してもよい。また、最適でない手を選択するようにしてもよい。そのような選択方法も、入門者の相手等、プレイヤーとしての強さが要求されない用途等では有用な可能性がある。
本実施形態では、各手のポイントを決定する際に、その手を打った後の局面として、相手が1手だけ手を進めた時点の局面までしか考慮しないが、さらに先の局面まで考慮してもよい。たとえば、コンピュータの性能が許容する場合には、各手のポイントを決定する際に、その手を打った後の局面として、現在の局面から所定数(2手以上)の手番だけ先までの局面をすべて探索し、最も先の局面のポイントに基づいて自分の手を選択してもよい。
このようにして自分の手を選択した後に、仮想的な競技者は、選択された手を表す情報を出力する(ステップS7)。選択された手を表す情報はどのような形式で表現されてもよい。リバーシの場合には、ゲーム盤上で自分の石を置くべき座標によって表現することができる。また、この出力は、試合実行装置に対して行われてもよい。
このようにして、仮想的な競技者は試合を進行することができる。このような仮想的な競技者を実現する競技者プログラムP1の具体的構成は、本明細書の記載および公知技術に基づいて当業者が適宜設計することができる。また、そのような競技者プログラムP1の具体的構成に応じた、プログラム作成プログラムP2の具体的構成も、本明細書の記載および公知技術に基づいて当業者が適宜設計することができる。
このように、本実施形態に係る競技者プログラム管理システム10およびプログラム作成プログラムP2によれば、局面の特徴を表すパターンを、戦術登録画面20において視覚的に認識しながら入力することにより仮想的な競技者を実現できるので、プログラミング言語の知識は不要であり、一般的な競技者でも容易に実現可能となる。
実際の試合の進行においては、たとえば、2人の仮想的な競技者が試合実行装置に従って試合を実行してもよく、人間の競技者が試合実行装置に自分の手を入力し、これに対する仮想的な競技者の手の結果を試合実行装置から出力させ、人間の競技者の次の手の入力を求めてもよい。
試合実行装置は、このようにして試合を進行させるとともに、試合情報D2を作成または更新する。
試合情報D2は、試合の進行を再現(リプレイ)するために用いられる情報である。たとえば、後述のリプレイ画面40(図17)を介して試合情報D2を表示することにより、試合の進行を再現することができる。
試合情報D2は、各試合の内容に基づき、試合に関する情報を関連付けて記憶する。試合に関する情報は、たとえば次のものを含む。
‐対戦相手となった競技者の区分(人間であるか、または仮想的な競技者であるか)
‐各競技者の名前(氏名、仮想的な競技者の識別名、等)
‐試合の日時(たとえば開始時点の日時)
‐試合の勝敗状況(その試合の終了時点において自分がどの程度有利であったかを表す情報であり、リバーシの場合には、試合終了時点の自分の石の数によって表すことができる)
‐1手ごとの局面と、各局面について評価値決定機能および選択機能の結果を表す情報
ここで、評価値決定機能および選択機能の結果を表す情報は、たとえば次の内容を含む。
‐その局面において可能な自分の手のリスト(ステップS2の探索結果)
‐リストに含まれる自分の手それぞれのポイント(ステップS6で算出されたもの)
‐その局面において可能な自分の手の、それぞれに対して可能な相手の手のリスト(すなわち2手先の手のリスト。ステップS3の探索結果)
‐リストに含まれる相手の手それぞれのポイント(ステップS5で算出されたもの)
‐相手の手が打たれた局面(2手先の局面)においてヒットした戦術のリスト(ステップS4でヒットしたもの)
‐リストに含まれる各戦術の戦術名
‐リストに含まれる各戦術のヒット区分(自分を基準としてヒットしたか、または相手を基準としてヒットしたか)
‐リストに含まれる各戦術のヒット程度(小ヒットまたは大ヒット)
なお、本実施形態では、試合実行装置は試合の進行または終了とともに試合情報D2を作成または更新するが、試合情報D2は任意のタイミングで作成可能である。たとえば、試合に用いられた戦術情報D1と、その試合の棋譜とがあれば、試合情報D2を作成することができる。
競技者プログラム管理システム10は、プログラム作成プログラムP2を実行することにより、さらに他の機能を実現可能であってもよい。たとえば、複数回の試合を自動的に実行し、試合結果に基づいて各戦術を評価する機能を実現するものであってもよい。この機能はいわゆるバッチ処理の形態で実現してもよい。たとえば、競技者プログラム管理システム10は、試合に用いる戦術情報D1と、その戦術情報D1に含まれる戦術のうち評価対象とするもの(1つ以上)を特定する情報と、実行する試合回数とを入力として受け付け、その試合回数だけ試合を実行し、結果に基づいてその戦術を評価する。この際、試合の棋譜や局面を表す画像の出力は省略してもよい。
対戦相手の行動は任意に設計可能であるが、たとえば、戦術情報D1をコピーし、そのうちから評価対象とする戦術を削除したものを用いてもよい。このようにすると、他の戦術の影響を無視しまたは小さく抑え、評価対象の戦術が対戦に及ぼす影響のみを適切に取り出して評価することができる。
図14に、このような機能に係る戦術評価画面(局面評価規則の評価画面)の例を示す。この例では、戦術評価画面は、戦術名と、試合数と、それらの試合の勝敗内訳と、1試合あたりのヒット回数(各試合におけるヒット回数の平均)と、1試合あたりのヒットポイント(各試合におけるヒットポイント合計の平均)とを含む。
図15に、このような戦術評価画面の表示に用いられる情報の構成の例を示す。この情報は、各戦術について、各試合におけるその戦術のヒット状況を関連付ける。ヒット状況は、たとえば、その戦術がヒットした局面が出現した試合のそれぞれについて作成される。ヒット状況は、たとえば、試合番号と、勝敗状況と、ヒット回数と、ヒットポイント合計とを含む。試合番号は、試合を特定する識別情報である。勝敗状況は、上述のようにその試合の終了時点において自分がどの程度有利であったかを表す情報であり、リバーシの場合には、試合終了時点の自分の石の数によって表すことができる。ヒット回数は、その試合においてその戦術がヒットした局面の数である(または、その試合においてその戦術がヒットした回数の累計であってもよい)。ヒットポイント合計は、その試合においてその戦術がヒットした際のポイントの累計である。このような情報については、長期にわたる保管を行う必要はない(たとえば半導体メモリのみに記憶され、ハードディスクドライブには記憶されない)。
また、戦術評価画面は、各試合の勝敗状況と、その試合においてその戦術がヒットした状況との相関を示す画像を含む。図14の例はこのような画像を2種類含んでいる。いずれの画像も、各試合の勝敗状況を横軸とし、その試合においてその戦術がヒットした状況を縦軸として、各試合に対応する点をプロットした散布図である。図14の例において、左側の画像は、ヒットした状況をヒットした回数により表したものであり、右側の画像は、ヒットした状況をヒットポイント合計により表したものである。座標系の右側に点が多く現れていれば、その戦術は大勝した試合においてよくヒットしたことを意味し、座標系の上側に点が多く現れていれば、その戦術は各試合において手を選択する際の寄与が大きかったことを意味する。すなわち、座標系の右上に点が多く集まる戦術は、良い戦術(強い競技者を実現する戦術)であるということができる。
また、戦術評価画面は、その戦術の評価コメントを含む。図14の例では、評価コメントとして、「この戦術は、かなり有効な手です!」という文字列が表示されている。評価コメントは、その戦術の有効度合を表すものであり、たとえば上述の散布図に表されるような、各試合の勝敗状況および各試合においてその戦術がヒットした状況に基づいて変化する。表示すべき文字列を、勝敗状況およびヒットした状況に基づいて決定または選択するための基準(統計的関数等)は、当業者であれば適宜設計可能である。
図14の例では、画像の横軸は試合終了時点の勝敗状況であるが、試合進行中の相対的な手の広さを横軸としてもよい。相対的な手の広さとは、たとえばN手目の局面において自分が打てる手の数から、その局面において相手が打てる手の数を減算した値により表される。
また、競技者プログラム管理システム10は、競技者プログラムP1またはプログラム作成プログラムP2を実行することにより、さらに他の機能を実現可能であってもよい。たとえば、特定の局面を想定した各戦術のヒット状況を検証する機能を実現するものであってもよい。
図16に、このような機能に係る戦術検証画面30の例を示す。戦術検証画面30は、戦術情報D1(局面評価規則)を検証するための、規則検証画面の一例であり、入力された局面に基づいて出力される画面である。競技者プログラム管理システム10は、戦術検証画面30を出力する機能を備える。戦術検証画面30は、戦術登録画面20と同様に、ボードゲームの盤面を表す盤面画像21と、ピースの状況を表すピース画像22とを含む。
競技者プログラム管理システム10の使用者は、戦術検証画面30に対する入力操作を介して、特定の局面を入力することができる。たとえば、盤面画像21上の特定のマスをクリックした後に、「1」キーを押下することにより、そのマスに「●」記号を表示させ、そのマスに自分の石が存在するという状況を入力することができる。この操作は、図16の例では「1:先手●」という表記により説明されている。同様に、「2」キーは相手の石が存在するという状況を入力することができる。このように、競技者プログラム管理システム10は、盤面画像21上の特定のマスを指定する操作と、そのマスにおけるピースの状況を指定する操作とを介して、局面の入力を受け付けることができる。
戦術検証画面30は、ポイント表示23を含む。ポイント表示23は、盤面画像21の特定の座標に表示される。競技者プログラム管理システム10は、戦術検証画面30において、複数の手のそれぞれについて、その手に対応する盤面画像21上の位置に、その手のポイント表示23を表示する。この図の例では、表示された局面に対する特定の手番(この例では先手)が石を置けるマスのそれぞれにポイント表示23が表示されている。各マスのポイント表示23は、そのマスに自分の石を置き、さらに相手が最善の対応をした局面を想定し、その局面について戦術情報D1を適用して算出されたポイント(評価値)を示すものである。たとえば、競技者プログラム管理システム10は、可能な手の各マスについて図12のステップS3〜S5を実行し、その最適な相手の手に係るポイントをそのマスのポイント表示23として表示する。
本実施形態ではボードゲームはリバーシであり、特定のマスに対して可能な手は「自分の石をそのマスに置く」という1種類の行為しかないが、同じ座標に対して複数の手が可能なボードゲームの場合には、単一の座標について、それぞれの手に対応する複数のポイントが表示されてもよい。
競技者プログラム管理システム10は、その局面を自分の手番と解釈して評価するか(図16はこの例である)、または、その局面を相手の手番と解釈して評価するかを指定する入力を受け付けることが可能であってもよい。図16の例では、「先手を」または「後手を」というラジオボタンのいずれかを選択し、「検証」というボタンをクリックすることによりこのような入力を行うことができる。図16の例では、「47」という数値が表示されているマスに先手が打った場合(すなわち黒い石が置かれた場合)に、その局面のポイントが先手から見て47であることが示されている。
ポイント表示23は、「検証」というボタンがクリックされることに応じて、その時点での盤面画像21の状況に基づき、自動的に表示されるものであってもよい。ポイント表示23は、たとえば、入力された局面から各マスに自分の石を置いた局面を、戦術情報D1に従って評価し、結果として得られたポイントを表示するものである。
さらに、競技者プログラム管理システム10は、ポイント表示23がなされている位置(たとえばマス)がクリックされることに応じて、そのポイント表示23に対応する手(たとえばそのマスに石を置くという手)と、戦術情報D1との関連を表す情報を表示する機能を備えてもよい。図16は、「47」というポイント表示23がなされているマス(3,5)がクリックされた状態を表す。この例では、クリックされたマスの背景を斜線とすることにより表示しているが、カラー表示が可能な場合には、背景をゲーム盤の他のマスとは異なる色(たとえば白色)とすることにより示してもよい。
図16の例では、その手と戦術情報D1との関連を表す情報として、ポイントの計算の内訳が表示されている。内訳はたとえば「<<クリックしたマスの戦術>>」として表示され、その手に対する最適な相手の手が打たれた時点の局面にヒットした戦術がすべて表示される。図16の例では、該当するマス(3,5)に黒い石が置かれ、さらに相手の手として(2,3)に白い石が置かれた場合に、「相手の石を増やす」戦術が、相手から見て7ポイントとなる小ヒット(すなわちポイント評価には−7ポイント)であり、自分から見て20ポイントとなる小ヒットであることが示されている。この例では、戦術にヒットしたマスは背景を斜線として示している(カラー表示が可能な場合には、背景を特別な色としてもよい)。また、他の戦術(「中割り」)もヒットしていることが示されている(ただしこの例では画面サイズの都合上一部のみの表示となっており、スクロール等の操作に応じて全体が表示可能である)。
また、図16の例では、現在選択した手についてのみ戦術情報D1との関連が示されているが、過去に選択された手と戦術情報D1との関連も、履歴として表示されていてもよい。また、他の画面に遷移することを命令するボタンが表示されてもよい。たとえば、戦術検証画面30が、後述のリプレイ画面40からの遷移を経て表示されている場合には、図示のように「リプレイへ」というボタンが表示されてもよい。その場合には、「リプレイへ」というボタンがクリックされることに応じて、その時点の局面を維持したまま後述のリプレイ画面40に再遷移してもよい。
このような戦術検証画面30を利用することにより、特定の局面において打つべき手のそれぞれについてポイント表示23が表示されるので、戦術情報D1の作成者は、各手のポイントの大小を見比べることにより、戦術情報D1が適切に構成されているかどうか(たとえば、最も有利と考えられる手のポイントが最大となっているかどうか)を検証することができる。また、不適切であると判断した場合(最も有利と考えられる手のポイントが最大とならない場合等)には、各戦術のポイントの内訳を表示させ、これを参考にしてポイントの指定を調整することができる。
また、特定の手を選んでそのマスをクリックすることにより、その局面の評価に影響した戦術をポイント付きでリストアップできるので、各戦術のポイントの大小を見比べることにより、戦術情報D1が適切に構成されているかどうか(たとえば、その手を選んだ根拠が自分の考えと整合しているかどうか)を検証することができる。
競技者プログラム管理システム10は、競技者プログラムP1またはプログラム作成プログラムP2を実行することにより、さらに他の機能を実現可能であってもよい。たとえば、特定の棋譜に従って各戦術のヒット状況を検証する機能を実現するものであってもよい。
図17に、このような機能に係るリプレイ画面40の例を示す。リプレイ画面40は、戦術情報D1(局面評価規則)を検証するための、規則検証画面の別の一例であり、試合情報D2に基づいて出力される画面である。競技者プログラム管理システム10は、リプレイ画面40を出力する機能を備える。リプレイ画面40は、戦術登録画面20および戦術検証画面30と同様に、ボードゲームの盤面を表す盤面画像21と、ピースの状況を表すピース画像22とを含む。
競技者プログラム管理システム10の使用者は、リプレイ画面40に対する入力操作を介して、特定の試合の特定の手番における局面を指定し、盤面画像21およびピース画像22を用いて表示させることができる。
図17の画面は、「ポチ」という名称の競技者と、「ゴン」という名称の競技者との試合の棋譜の一例である。競技者プログラム管理システム10は、棋譜における任意の手番に対応する局面を盤面画像21およびピース画像22を用いて表示する。リプレイ画面40は、手番を進める進行ボタン(「>」)と、手番を戻す巻き戻しボタン(「<」)とを含む。競技者プログラム管理システム10は、これらのボタンがクリックされることに応じ、棋譜に従って、表示される局面を進めまたは巻き戻す。図17の例では13手目の局面が表示されている。
リプレイ画面40は、戦術検証画面30と同様に、ポイント表示23を含む。ポイント表示23は、盤面画像21の特定の座標に表示される。競技者プログラム管理システム10は、リプレイ画面40において、複数の手のそれぞれについて、その手に対応する盤面画像21上の位置に、その手のポイント表示23を表示する。この図の例では、表示された局面に対する特定の手番(この例では先手)が石を置けるマスのそれぞれにポイント表示23(評価値)が表示されている。また、その手番において実際に石が置かれたマスを示す表示がなされており、この例では背景をゲーム盤の他のマスとは異なる色(たとえば黒色)とすることにより示している。
戦術検証画面30と同様に、本実施形態ではボードゲームはリバーシであり、特定のマスに対して可能な手は「自分の石をそのマスに置く」という1種類の行為しかないが、同じ座標に対して複数の手が可能なボードゲームの場合には、単一の座標について、それぞれの手に対応する複数のポイントが表示されてもよい。
さらに、競技者プログラム管理システム10は、戦術検証画面30と同様に、ポイント表示23がなされている位置(たとえばマス)がクリックされることに応じて、そのポイント表示23に対応する手(たとえばそのマスに石を置くという手)と、戦術情報D1との関連を表す情報を表示する機能を備えてもよい。図17は、「7」というポイント表示23がなされているマスがクリックされた状態を表す。その手と戦術情報D1との関連を表す情報は、たとえば戦術検証画面30と同様に表示される。
また、他の画面に遷移することを命令するボタンが表示されてもよい。たとえば、「戦術検証へ」というボタンがクリックされることに応じて、その時点の局面を維持したまま上述の戦術検証画面30に遷移してもよい。
このようなリプレイ画面40を利用することにより、上述のように戦術検証画面30を利用した場合と同様に、戦術情報D1が適切に構成されているかどうかを検証することができる。
なお、リプレイ画面40において表示されるポイントは、特定の試合に実際に使用された戦術情報D1に基づいて算出されたものである。これに対し、戦術検証画面30において表示されるポイントは、その時点での戦術情報D1に基づいて算出される。このため、戦術の内容が異なっていれば、同じ局面の同じ手でも値が異なる場合がある。
戦術情報D1の作成者は、リプレイ画面40と戦術検証画面30とを交互に表示させ対比することにより、敗因の分析や、戦術の改良を容易に行うことができる。たとえば、試合時点での戦術による各手の評価(リプレイ画面40)と、その後で変更した戦術による各手の評価(戦術検証画面30)とを比較し、各手の評価が意図した通りに変化しているか否かを確認することができる。このように変更および確認を繰り返すことにより、より望ましい戦術情報D1を容易に作成できる。
以上説明するように、本発明の実施の形態1に係る競技者プログラム管理システム10、競技者プログラムP1およびプログラム作成プログラムP2によれば、局面の特徴を表すパターンを含む戦術情報D1を入力することにより仮想的な競技者を実現することができる。このため、仮想的な競技者を実現するのにプログラミング言語の知識は不要であり、一般的な競技者でも容易に可能となる。
さらに、戦術情報D1の入力は戦術登録画面20を介して行うことができるので、インタフェースが視覚的にわかりやすく、コンピュータに詳しくない競技者でも容易に入力可能である。また、戦術情報D1の検証についても、戦術検証画面30およびリプレイ画面40を用いて行うことができるので、インタフェースが視覚的にわかりやすく、コンピュータに詳しくない競技者でも容易に検証可能である。
[実施の形態2]
実施の形態1に係る競技者プログラム管理システム10は、単独で戦術情報D1を作成することができ、また戦術情報D1を用いて試合を実行することができる。実施の形態2では、これらの機能を複数のコンピュータに分散し、通信ネットワークを介して協働させるものである。以下、実施の形態1との相違を説明する。
図18に、本発明の実施の形態2に係る、ボードゲームの大会実行システムの構成の例を示す。大会実行システムは、ボードゲームの複数の競技者プログラム管理システム110(競技参加コンピュータ)と、ボードゲームの試合実行システム120とを含む。
競技者プログラム管理システム110は、たとえば競技大会の参加者がそれぞれ所有するコンピュータであり、試合実行システム120は、たとえば競技大会の主催者が準備するコンピュータである。競技者プログラム管理システム110と試合実行システム120とは、通信ネットワーク(たとえばインターネット)を介して通信可能に接続される。
競技者プログラム管理システム110は、公知のコンピュータとしての構成を有し、実施の形態1の競技者プログラム管理システム10と同様に、演算手段111、記憶手段112、入力装置113および出力装置114を備える。また、競技者プログラム管理システム110は、通信ネットワークに対して情報の入出力を行う通信手段115を備える。競技者プログラム管理システム110の記憶手段112は、競技者プログラムP1、プログラム作成プログラムP2、戦術情報D1および試合情報D2を格納する。実施の形態1と異なり、試合実行プログラムP3は省略可能である。
試合実行システム120もまた公知のコンピュータとしての構成を有し、演算手段121、記憶手段122および通信手段125を備える。試合実行システム120の記憶手段122は、競技者プログラムP1、試合実行プログラムP3、戦術情報D1および試合情報D2を格納する。記憶手段122は、さらにプログラム作成プログラムP2を格納してもよい。
実施の形態2に係る大会実行システムの動作を、以下に説明する。
競技者プログラム管理システム110は、実施の形態1の競技者プログラム管理システム10と同様に動作する。ただし、競技者プログラム管理システム110が試合実行プログラムP3を記憶しない場合には、試合実行プログラムP3を実行するという動作については省略可能である。また、競技者プログラム管理システム110は、競技参加コンピュータとして、戦術情報D1を、通信ネットワークを介して試合実行システム120に送信する機能を備える。
試合実行システム120は、各競技者プログラム管理システム110から戦術情報D1を受信する。すなわち、試合実行システム120は、戦術情報D1を、複数の競技参加コンピュータから、通信ネットワークを介して受信する機能(局面評価規則受信機能)を備える。なお、戦術情報D1は、実施の形態1と同様に、局面の特徴を表すパターンと、当該パターンの評価値とを関連付ける、局面評価規則である。
次に、試合実行システム120は、競技者プログラムP1および試合実行プログラムP3を実行することにより、各戦術情報D1に基づいて構成される仮想的な競技者の間で試合を実行する。試合の組み合わせは任意に設計することができ、たとえばトーナメント戦であってもよく、リーグ戦であってもよい。各試合は、ボードゲームの参加者の数(リバーシの場合には2人)の仮想的な競技者によって、その仮想的な競技者に対応する戦術情報D1(各競技者プログラム管理システム110から受信したもの)に基づいて行われる。
試合は、ボードゲームの手番に応じ、各仮想的な競技者が手を打つことにより進行する。仮想的な競技者は、実施の形態1の競技者プログラム管理システム10と同様にして手を評価し選択する。すなわち、試合実行システム120は、少なくとも、
‐複数の手のそれぞれについて、手を打った後の局面を、第1の競技参加コンピュータに係る第1の局面評価規則に従って評価することにより、各手の第1の評価値を決定する、第1の評価値決定機能と、
‐各手の第1の評価値に基づき、打つべき手を選択する、第1の選択機能と、
‐複数の手のそれぞれについて、手を打った後の局面を、第2の競技参加コンピュータに係る第2の局面評価規則に従って評価することにより、各手の第2の評価値を決定する、第2の評価値決定機能と、
‐各手の第2の評価値に基づき、打つべき手を選択する、第2の選択機能と、
‐第1の評価値決定機能と、第2の評価値決定機能と、第1の選択機能と、第2の選択機能とを用いて、ボードゲームの試合を実行する機能と、
を備えるということができる。このようにして、試合実行システム120は、ボードゲームの試合を進行させる。
多数の試合を同様に実行することにより、試合実行システム120はボードゲームの大会を実現することができる。大会の実現に際しては、試合実行システム120は各競技者プログラム管理システム110から戦術情報D1に加えてエントリ情報を受け付けてもよく、大会に係る情報(トーナメント表)等を送信または公表してもよい。エントリ情報の管理やトーナメント表の作成等は、大会の主催者等が適宜行うことができる。
このように、実施の形態1と同様に、局面の特徴を表すパターンを含む戦術情報D1を入力することにより、大会に参加する仮想的な競技者を実現することができる。このため、仮想的な競技者を実現するのにプログラミング言語の知識は不要であり、一般的な競技者でも容易に参加可能となる。
さらに、実施の形態2によれば、(1)戦術情報D1を事前に作成すれば良いので、実力をその場で発揮する必要がなく、プレッシャーやストレスが軽減される、(2)試合は戦術情報D1に基づいて自動的に行われるので、何試合もの対戦を自ら行う必要がなく、疲労が軽減される、(3)会場への移動時間や、対戦の待ち時間等が不要となり、拘束時間が解消または短縮される、(4)競技会のスケジュールに合わせるのがより容易となる、(5)ボードゲームの実力に関わらず、アイデアや閃きを活用して戦術情報D1をうまく構成すれば上位入賞が望める、等の効果が得られる可能性がある。
さらに、大会主催者の側でも、大会会場を準備する必要がないので、手間やコストを節約することができる。このため、たとえばエントリの需要が増大した場合にも容易に対応可能である。
試合実行システム120は、試合ごとに試合情報D2を作成してもよい。試合実行システム120は、各試合情報D2を、関連する競技者プログラム管理システム110に対し、通信ネットワークを介して送信する機能を備えてもよい。たとえば、2人の仮想的な競技者の間で行われた試合の結果を、それらの仮想的な競技者に係る戦術情報D1の送信元である競技者プログラム管理システム110に、それぞれ送信してもよい。
競技者プログラム管理システム110は、この試合情報D2を受信して記憶手段112に格納してもよい。このようにすると、実施の形態1の戦術検証画面30およびリプレイ画面40等を利用してトーナメントの結果を分析することができ、戦術情報D1の改善をより容易に行うことができる。
[その他の実施の形態]
上述の各実施形態において、以下のような変形を施すことができる。
上述の各実施形態では、パターンはゲーム盤上の座標のみについて定義されるが、ゲーム盤外の状況を含んで定義できるように変形してもよい。たとえば、将棋の持ち駒、囲碁のアゲハマ、カードゲームの手札、等の状況を定義してもよい。
また、たとえば、連結対象となる相対基準座標の位置または範囲を特定し、それ以外の座標を基準とするパーツは連結しないよう判定してもよい。
また、各実施形態では、上記(式1)によるパターンの向きの展開(回転または反転)は常にゲーム盤の中央(仮に座標で表現すると(4.5,4.5)として参照可能な位置)を基準として行われるが、他の位置を基準として行ってもよい。たとえば、パターンごとに、回転または反転を許容するか否かを指定してもよく、回転または反転の基準となる座標を指定できるようにしてもよい。たとえば、各「中割り」戦術のパターンは、相対基準座標(0,0)を中心として回転しながら判定してもよい。
各実施形態では、パターンは2次元直交座標系を用いて定義されるが、直交座標系を用いる必要はない。また、リバーシ以外のボードゲームについては、ゲーム盤の形状に応じて、1次元の座標系を用いてもよく、3次元以上の座標系を用いてもよい。
実施の形態2では複数の競技者プログラム管理システム110が設けられるが、競技者プログラム管理システム110は省略してもよい。その場合には、戦術情報D1は他の方法で作成されてもよい。たとえば、戦術情報D1をテキストファイルとして構成し、仕様を公表しておけば、大会の参加者は戦術情報D1をテキストエディタ等を用いて直接的に記述し、電子メール等任意の形式で通信ネットワークを介して試合実行システム120に送信することができる。