(57)【特許請求の範囲】
【請求項１】
夫々の仮想のプレーヤ同士が行う対局ゲームの進行制御を行う対局ゲーム装置であって、
前記対局の進行を所定のタイミングで停止させ、停止させた対局の状態において一方の仮想のプレーヤが次に打ちうる指し手の候補を所定個数だけ所定の表示装置に表示させる表示制御手段と、
前記所定個数の候補のうち、１つの候補の入力を受け付ける入力手段と、
前記入力手段によって入力された１つの候補に従った指し手を前記一方の仮想のプレーヤの指し手として指し、前記対局ゲームの進行を再開させる進行再開手段と
を備えることを特徴とする対局ゲーム装置。
【請求項２】
更に、夫々の仮想のプレーヤの思考レベルを設定する設定手段を備え、
前記表示制御手段は、一方の仮想のプレーヤが次に指しうる複数の指し手のうち前記思考レベルが高いほどより多くの数の指し手を第１の候補群として選択し、当該第１の候補群の夫々から、前記思考レベルが高いほどより先の対局の進行をシミュレートし、前記第１の候補群の夫々のシミュレート結果に応じて、前記第１の候補群から第２の候補群を選択し、当該第２の候補群を前記所定の表示装置に表示することを特徴とする請求項１に記載の対局ゲーム装置。
【請求項３】
コンピュータに夫々の仮想のプレーヤ同士が行う対局ゲームの進行制御を行わせる対局ゲームプログラムであって、
前記対局の進行を所定のタイミングで停止させ、停止させた対局の状態において一方の仮想のプレーヤが次に打ちうる指し手の候補を所定個数だけ所定の表示装置に表示させる表示制御工程と、
前記所定個数の候補のうち、１つの候補の入力を受け付ける入力工程と、
前記入力工程で入力された１つの候補に従った指し手を前記一方の仮想のプレーヤの指し手として指し、前記対局ゲームの進行を再開させる進行再開工程と
を前記コンピュータに実行させることを特徴とする対局ゲームプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、対局ゲーム装置、対局ゲームプログラムに関するものである。
【０００２】
【従来の技術】
囲碁や将棋などに代表される対局ゲームをコンピュータゲームとして実施した例は従来からいくつかある。従来の対局コンピュータゲームの１つに、コンピュータが対局の途中の状態（例えば囲碁であれば碁盤と共に碁石の配置状態）と共に、いくつかの次の指し手をプレーヤに提示し、提示されたいくつかの手から最も良い手をプレーヤに考えさせるというクイズ形式のゲームもあった。
【０００３】
【発明が解決しようとする課題】
上記クイズ形式の対局ゲームでは、対局の途中の状態といくつかの次の指し手、即ちクイズの問題が予めいくつかコンピュータに記憶されており、その中から順次、もしくはランダムにプレーヤに対して出題しているので、プレーヤにこのゲームで何度もプレイさせると、プレーヤは問題と共に答えを覚えてしまうので、プレイの回数が多くなるに従って、ゲームの内容が単調なものになってしまう。
【０００４】
本発明はこのような点を考慮して成されたものであり、非単調な対局ゲームを行う対局ゲーム装置、対局ゲームプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の対局ゲーム装置は以下の構成を備える。
【０００６】
すなわち、夫々の仮想のプレーヤ同士が行う対局ゲームの進行制御を行う対局ゲーム装置であって、
前記対局の進行を所定のタイミングで停止させ、停止させた対局の状態において一方の仮想のプレーヤが次に打ちうる指し手の候補を所定個数だけ所定の表示装置に表示させる表示制御手段と、
前記所定個数の候補のうち、１つの候補の入力を受け付ける入力手段と、
前記入力手段によって入力された１つの候補に従った指し手を前記一方の仮想のプレーヤの指し手として指し、前記対局ゲームの進行を再開させる進行再開手段と
を備えることを特徴とする。
【０００９】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態について詳細に説明する。
【００１０】
［第１の実施形態］
図１は、本実施形態に係る対局ゲームプログラムを実行する対局ゲーム装置の基本構成を示す図である。本実施形態に係る対局ゲーム装置は、後述する構成を有していることから一般のＰＣ（パーソナルコンピュータ）や家庭用ゲーム専用機等に適用可能である。
【００１１】
また本実施形態では対局ゲームとして囲碁を例にとり説明するが、これに限定されるものではなく、対局ゲームの内容が例えば将棋など囲碁以外であっても良い。また以下では文言の混乱を避けるため、本装置を用いて囲碁を遊戯する現実のプレーヤを操作者と呼称する。
【００１２】
ＣＰＵ１０１はＲＯＭ１０３に格納されたプログラムやデータを用いて本装置全体の起動や、起動後の本装置の制御を行う。また、ＲＡＭ１０２にロードされるプログラムやデータを用いて後述のゲーム処理を行う。ＲＡＭ１０２は外部記憶装置１０７に保存されているプログラムやデータ、記憶媒体ドライブ１０８によって記憶媒体１０９から読み出されるゲームプログラム１０９ａやゲームデータ１０９ｂを一時的に記憶するエリアを備えると共に、ＣＰＵ１０１が各処理を行うに際し、使用するワークエリアも備える。ＲＯＭ１０３は本装置全体の起動を行うためのプログラム（ブートプログラム）や、起動後の本装置を制御するためのプログラムやデータ等を格納する。
【００１３】
表示部１０４はＣＲＴや液晶画面などにより構成されており、後述のゲーム画面を表示する。キーボード１０５，マウス１０６は各指示をＣＰＵ１０１に対して入力するためのポインティングデバイスとして用いられる。ポインティングデバイスとしては他にも、ゲームパッドやジョイスティックなどを用いても良い。外部記憶装置１０８はハードディスクドライブなどに代表される大容量情報記憶装置で、記憶媒体ドライブ１０８が記憶媒体１０９から読み出したゲームプログラム１０９ａ、ゲームデータ１０９ｂを保存することができる。
【００１４】
記憶媒体ドライブ１０８は記憶媒体１０９に格納されたゲームプログラム１０９ａ、ゲームデータ１０９ｂを読み出して、ＲＡＭ１０２や外部記憶装置１０８に出力する。記憶媒体１０９はＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどにより構成されており、情報記録のための記録メディアであれば特に限定されるものではない。その場合当然、記憶媒体ドライブ１０８はそのメディアの種類に対応したものである必要がある。記憶媒体１０９にはＣＰＵ１０１に後述のゲーム処理を実行させるためのゲームプログラム１０９ａと、後述のゲーム処理に要する各種のデータ群であるゲームデータ１０９ｂが格納されている。
【００１５】
上記ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、表示部１０４、キーボード１０５、マウス１０６、外部記憶装置１０８、記憶媒体ドライブ１０８の夫々はバス１１０に接続されており、夫々の間で通信が可能である。
【００１６】
以上の構成を有する対局ゲーム装置が行う、囲碁ゲーム進行処理について以下、説明する。図２は表示部１０４上に表示される囲碁ゲームを進行している状態の画面の一例を示す図である。
【００１７】
同図において２００は囲碁ゲームの画面で、ＣＰＵ１０１は仮想のプレーヤ同士が囲碁を行っている様子を画面２００内に表示する。すなわち画面２００内には碁盤の画像２０１が表示されており、この碁盤の画像２０１上に一方の仮想のプレーヤ（以下、仮想プレーヤ１）と他方の仮想のプレーヤ（以下、仮想プレーヤ２）とが交互に打つ碁石の画像が順次配置される。例えば同図において、仮想プレーヤ１が黒の碁石を打つプレーヤ、仮想プレーヤ２が白の碁石を打つプレーヤであるとすると、次にプレーヤ２が碁盤の目上の何れかの位置に白の碁石を打つことになるので、次に碁盤の画像２０１上の何れかの位置に白の碁石の画像が配置されることになる。
【００１８】
次に、この囲碁の進行処理においてＣＰＵ１０１が行う、夫々の仮想のプレーヤが碁盤の目上のどの位置に自分の碁石を配置するかを決定するための処理について以下、説明する。夫々の仮想プレーヤの思考のレベル、すなわち、囲碁に勝つために十分思考してから次に指し手を決定する、もしくはあまり考えずに次に指し手を決定する等、次の指し手を決定するための思考がどの程度行われるのかを示すパラメータが本実施形態における囲碁ゲームには存在し、このパラメータは操作者によって任意に設定可能である。
【００１９】
図３は夫々の仮想のプレーヤの思考レベルを設定するための画面の一例を示す図で、操作者はキーボード１０５やマウス１０６を用いてスライダ３０１やスライダ３０２を左右に移動させることで、夫々仮想プレーヤ１の思考レベル、仮想プレーヤ２の思考レベルを高くしたり、低くしたりすることができる。
【００２０】
同図に示した画面の例では、スライダ３０１を左方向に移行させると仮想プレーヤ１の思考レベルをより低くすることができ、右方向に移動させると仮想プレーヤ１の思考レベルをより高くすることができる。一方、スライダ３０２を左方向に移行させると仮想プレーヤ２の思考レベルをより低くすることができ、右方向に移動させると仮想プレーヤ２の思考レベルをより高くすることができる。以上のようにして夫々の仮想プレーヤの思考レベルを独立に設定できると共に、夫々の仮想プレーヤ間で相対的な思考レベル（どちらの仮想プレーヤの思考レベルが高いか）を設定することができる。
【００２１】
次に、決定した思考レベルに基づいて、次の指し手を決定する処理について説明する。まずＣＰＵ１０１は現状の碁石の配置を参照して、次に碁石を打てる位置を検出し、検出した位置に様々な碁石の配置パターンを仮想的に実施し、相手の仮想プレーヤから取りうる碁石の数を求める。
【００２２】
本実施形態では囲碁ゲームを進行している際にはＲＡＭ１０２には図４に例示するような、夫々の仮想プレーヤがどの位置に自分の指し手を打ったかを示すテーブルを記憶する。同図の各マス目は碁石を打ちうる全ての指し手の位置を示しており、「１」が記録されたマス目は仮想プレーヤ１が打った碁石が配置されている位置、「２」が記録されたマス目は仮想プレーヤ２が打った碁石が配置されている位置を示す。よってＣＰＵ１０１はこのテーブルを参照することで、各仮想プレーヤの打った碁石の位置を把握することができる。
【００２３】
本実施形態では、上記テーブルを参照して空いているマス目を用いて「布石」、「攻め合い」、「パターンマッチング」、「攻撃」、「防御」、「眼形」の６種類について試し、相手の仮想プレーヤから取りうる碁石の数を求める。なお「パターンマッチング」について試す場合、予め「黒石と白石がこの配置パターンになった場合にはここに打つ」というような指し手のパターンデータが予めゲームデータ１０９ｂに含まれているので、このデータを用いて、順次指し手を決めていき、相手の仮想プレーヤから取りうる碁石の数を求める処理を行う。
【００２４】
ここで、どの程度この６種類を試すかについては、上記処理によって設定した思考レベルに従う。すなわち、思考レベルが高いほど、空いているマス目の様々な位置に碁石を配置して、より多くの試行サンプルを得ることができるので、より良い次の指し手を決める可能性が高くなる。
【００２５】
また、夫々の試行サンプルをどの程度先のゲームまでシミュレーションして得るのかも、思考レベルに基づいている。すなわち、相手がこのように打ったら、次は自分はこの手を打って、、、というように、先の進行をシミュレートするが、思考レベルが高いほど、より先の進行までシミュレートし、思考レベルが低いほど、少し先の手までしかシミュレートしない。
【００２６】
以上のようにして、思考レベルに基づいて次の指し手を決定する処理としては以下のようになる。例えば「布石」の場合に、次の指し手の位置を位置Ａとした場合は相手の碁石を１０個取れる、次の指し手の位置を位置Ｂとした場合は相手の碁石を５個取れる、次の指し手の位置を位置Ｃとした場合は相手の碁石を３個取れると求め、一方、「攻撃」の場合に、次の指し手の位置を位置Ｄとした場合は相手の碁石を１１個取れる、次の指し手の位置を位置Ｅとした場合は相手の碁石を８個取れる、次の指し手の位置を位置Ｆとした場合は相手の碁石を６個取れると求めた場合は、次の指し手の最も良い位置は位置Ｄと決定する。
【００２７】
以上の処理によりＣＰＵ１０１は、夫々の仮想プレーヤの次の指し手を、夫々の仮想プレーヤの思考レベルに従って決定することができ、決定した指し手を交互に打っていき、囲碁を進行させる。
【００２８】
ここでＣＰＵ１０１は、例えば１０手毎（定期的でも良いし、不定期的でも良い）に囲碁の進行（夫々の仮想プレーヤが次の指し手を打つ処理）を停止させ、表示部１０４に、仮想プレーヤ１（仮想プレーヤ２でも良い）が次に打つべき指し手をいくつか表示させ、最も良い指し手がどれであるかというクイズ画面を表示させる。
【００２９】
なお、囲碁の進行は停止させても、ＣＰＵ１０１はこの時点で夫々の仮想プレーヤが次に打つ指し手の候補はいくつか求めている。なお本実施形態ではこの候補の数を３つとするが、この数に限定されるものではない。なお、その場合、ＣＰＵ１０１は上述の説明による次に指し手を求める処理において、相手から取れる碁石の数をその候補の評価値して、評価値の高い上位３つを次の指し手の候補としてＲＡＭ１０２に記憶させる。例えば上述の説明を例に取ると、次の指し手の３つの候補は位置Ｄ、Ａ、Ｅである。この場合の夫々の候補の評価値は１１，１０，８である。
【００３０】
なお、３つの候補を選択する場合、他にも例えば、囲碁の進行を停止させた状態で、ＣＰＵ１０１が求めうる次の指し手の数が５つ以上である場合には、評価値の順位が１番目、３番目、５番目の候補を３つの候補として選択し、ＣＰＵ１０１が求めうる次の指し手の数が３，４個である場合には、評価値の順位が１番目，２番目，３番目の候補を３つの候補として選択する。
【００３１】
なお、上記方法により次の指し手の候補の位置が３つに満たない場合には、以下の簡易方法により足りない候補を補充する。すなわち、空いているマス目をランダムに選択し、以下の３つの条件を満たしていればこのランダムに選択した位置を候補の位置とする。
【００３２】
・  ランダムに選択した位置が碁盤の端からマス目数個分離れている
・  ランダムに選択した位置が碁盤の中央からマス目数個分離れている
・  ランダムに選択した位置が活路が０又は１の位置以外である
これにより必ず３つの候補を提示できる。なお「活路」とは、仮想プレーヤ１（仮想プレーヤ２でも良い）の石の周囲（同じ色の石が複数個隣接している場合には隣接している複数個の石群の周囲）で空いている位置（石をおいていない位置）の数である。
【００３３】
図７は、白の碁石の周囲における黒の碁石のいくつかの配置パターン、及び碁盤における白の碁石のいくつかの配置パターンを例にとり、夫々の場合における活路を説明するための図である。なお、同図では、白の碁石に対する活路を説明している。図７（ａ）の場合には白の碁石の周囲には４カ所空いている位置（同図では三角で示している）が存在する。この４カ所の位置が活路であってこの場合活路の数は４つとなる。
【００３４】
図７（ｂ）の場合には白の碁石の周囲には３カ所空いている位置（同図では三角で示している）が存在する。この３カ所の位置が活路であってこの場合活路の数は３つとなる。
【００３５】
図７（ｃ）の場合には白の碁石の周囲には２カ所空いている位置（同図では三角で示している）が存在する。この２カ所の位置が活路であってこの場合活路の数は２つとなる。
【００３６】
図７（ｄ）の場合には白の碁石の周囲には１カ所空いている位置（同図では三角で示している）が存在する。この１カ所の位置が活路であってこの場合活路の数は１つとなる。
【００３７】
図７（ｅ）の場合には白の碁石群（連続する３つの白の碁石による碁石群）は碁盤の上端部に配置されている。よってこの白の碁石群の周囲には５カ所空いている位置（同図では三角で示している）が存在する。この５カ所の位置が活路であってこの場合活路の数は５つとなる。
【００３８】
図７（ｆ）の場合には白の碁石は碁盤の左上隅の位置に配置されている。よってこの白の碁石の周囲には２カ所空いている位置（同図では三角で示している）が存在する。この２カ所の位置が活路であってこの場合活路の数は２つとなる。
【００３９】
図５は、このクイズ画面の一例を示す図である。同図において画面２００には図２に示した碁盤の画像２０１と碁盤の画像２０１上に配置された夫々の仮想プレーヤの碁石の画像が配置されているが、新たに碁盤の画像２０１上には、クイズの内容に係る、次の指し手の候補の３つが表示されている。また画面２００の下部にはクイズの内容が表示されたウィンドウ２１０が表示されている。
【００４０】
同図では、仮想プレーヤ１が次に打つ指し手の候補が碁盤の画像２０１上に星のマークで表示されており、操作者は同図の画面を見て判断し、最も良いと思われる位置をキーボード１０５やマウス１０６を用いて指示し、入力する。なお、このクイズの答え（最も評価値の高い候補が示す位置）、もしくは操作者が入力した次に指し手がどの程度良い手であるのかに関する情報（例えば入力した位置が何番目に高い評価値であるのか）は画面２００上に表示しても良いし、表示しなくても良い。
【００４１】
そして操作者が判断した位置を入力すると、ＣＰＵ１０１はこの位置に仮想プレーヤ１の碁石を配置する。そしてＣＰＵ１０１は以降、囲碁の進行を停止させた直前の碁盤上の夫々の仮想プレーヤの碁石に今回配置した碁石を加えた配置を初期状態として囲碁のゲームの進行を再開する。なお、観察者が入力した位置が仮想プレーヤ１が次に打つ指し手の位置として良い位置（表示された３つの候補の中で良い位置）であったとしても、仮想プレーヤ１の思考レベルが低ければ必ず囲碁に勝つとは限らない。また逆に、観察者が入力した位置が仮想プレーヤ１が次に打つ指し手の位置として悪い位置（表示された３つの候補の中で悪い位置）であったとしても、仮想プレーヤ１の思考レベルが高ければ必ず囲碁に負けるとは限らない。
【００４２】
すなわち、囲碁の勝敗は操作者の能力と仮想プレーヤ１の思考レベルによるところがあり、例えば操作者がまだ囲碁の初心者である場合には仮想プレーヤ１の思考レベルを高くしておけば、仮に操作者がクイズで悪い位置を入力しても仮想プレーヤ１が囲碁に勝つ可能性が残されるので、ゲームはより簡単なものとなる。一方、操作者が囲碁に詳しい場合には、仮想プレーヤ１の思考レベルを低くすることで、操作者はクイズで悪い位置を入力してしまうと仮想プレーヤ１が囲碁に勝つ可能性はほとんどないことになる。このため、囲碁に勝ちたい場合には、囲碁に詳しい操作者に対しては常に最良の答えを入力することが義務づけられるので、ゲームはより難しいものとなる。
【００４３】
このように本実施形態に係る囲碁ゲームは、操作者の囲碁に対する知識のレベルに応じてその難易度を変化させることができるので、このゲームにより観察者は自身の囲碁のレベルに応じて囲碁を学ぶことができる。
【００４４】
また、操作者がこの囲碁ゲームを複数回行っても同じ内容のクイズが出題される可能性は低いため、ゲームの単調化を防ぐことができる。
【００４５】
図６は、本実施形態に係る対局ゲーム装置が行う、囲碁ゲームの進行処理のフローチャートである。なお、同図のフローチャートに従ったプログラムは上記ゲームプログラム１０９ａとしてＲＡＭ１０２にロードされ、ＣＰＵ１０１により実行される。これにより本実施形態に係る対局ゲーム装置は上記囲碁ゲームの進行処理を行うことができる。
【００４６】
ゲームをスタートさせると（キーボード１０５やマウス１０６を用いてゲームスタートの指示が入力されると）、ＣＰＵ１０１は夫々の仮想プレーヤの夫々の思考レベルに基づいた次の指し手を求め、求めた指し手を指す処理を夫々の仮想プレーヤに対して交互に行っていく（ステップＳ６０１）。
【００４７】
ここでクイズを出すタイミングであるか否かが判断される（ステップＳ６０２）。このタイミングとは例えば１０手毎でも良いし、ランダムなタイミングでも良い。また、囲碁の終盤では次の指し手の選択の幅が少なくなるので、クイズは囲碁の序盤、中盤において出題するのが好ましい。
【００４８】
そしてクイズを出すタイミングである場合、処理をステップＳ６０３に移行し、囲碁の進行を停止させ、３つの候補を上記方法により求め、表示部１０４に表示する（ステップＳ６０３）。そして操作者からキーボード１０５やマウス１０６を用いた解答の入力を受け付ける（ステップＳ６０４）。そして観察者からキーボード１０５やマウス１０６を用いて３つの候補のうち１つが選択（入力）されると、入力された候補が示す位置に仮想プレーヤ１の碁石の画像を配置する（ステップＳ６０５）。
【００４９】
そして囲碁の勝負がついたか否かが判定され（ステップＳ６０６）、勝負が付いた場合には同図に示したフローチャートに従った処理を終了し、勝負が付いていない場合には処理をステップＳ６０１に戻し、囲碁の進行を再開させ、次は仮想プレーヤ２の指し手を決めて打ち、ステップＳ６０２以降の処理を行う。
【００５０】
なお本実施形態では操作者は仮想プレーヤ１の次の指し手を決めているが、操作者が決める指し手は仮想プレーヤ２のものであっても良い。
【００５１】
［第２の実施形態］
以上の処理（例えば図６に示したフローチャートの一部、もしくは全部に従った処理）をプログラムとしてＣＤ−Ｒ、ＲＯＭやＤＶＤ−ＲＯＭ、ＭＯ等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませる（インストール、もしくはコピーさせる）ことで、このコンピュータのＣＰＵ又はＭＰＵに以上の処理を行わせることができるので、このプログラムを記憶した記憶媒体もまた本発明を実施可能なものにする。よって、この記憶媒体も本発明の範疇にあることは明白である。
【００５２】
【発明の効果】
以上の説明により、本発明によって、対局ゲームの単調化を防ぐことができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る対局ゲームプログラムを実行する対局ゲーム装置の基本構成を示す図である。
【図２】表示部１０４上に表示される囲碁ゲームを進行している状態の画面の一例を示す図である。
【図３】夫々の仮想のプレーヤの思考レベルを設定するための画面の一例を示す図である。
【図４】夫々の仮想プレーヤがどの位置に自分の指し手を打ったかを示すテーブルを例示する図である。
【図５】クイズ画面の一例を示す図である。
【図６】本発明の実施形態に係る対局ゲーム装置が行う、囲碁ゲームの進行処理のフローチャートである。
【図７】「活路」を説明するための図である。
【図１】
0003569784.tif 000002
【図２】
0003569784.tif 000003
【図３】
0003569784.tif 000004
【図４】
0003569784.tif 000005
【図５】
0003569784.tif 000006
【図６】
0003569784.tif 000007
【図７】
0003569784.tif 000008