(57)【特許請求の範囲】
【請求項１】
終局判定処理を実行する囲碁ゲーム装置において、
局面データを記憶する局面データ記憶手段と、
前記局面データ記憶手段に記憶されている局面において、縦横方向に隣接しているか、若しくは斜め方向に隣接していてかつ当該斜め方向に隣接する石に共通する隣接点２点のうち少なくとも一方が空点である状態でつながっている同色の石からなる群を判定する群判定手段と、
前記局面データ記憶手段に記憶されている局面から空点を探索し、当該空点から縦横に隣接する点の前記局面データ上の状態を順次調べ、隣接する点が空点である場合は更に再帰的に調べることにより当該空点が前記群判定手段によって判定されたある群に属する地であるか否かを検出して前記群判定手段によって判定された群に属する地の広さおよび箇所数を検出する地検出手段と、
前記地検出手段によって検出されたある群に属する地の広さおよび／または箇所数に応じて当該群の死活判定を行う群死活判定手段とを具備したことを特徴とする囲碁ゲーム装置。
【請求項２】
前記局面データ記憶手段に記憶されている局面データ中の空点に付加石を置いて局面を変換する局面変換手段をさらに具備し、
前記群判定手段は、前記変換手段によって変換された局面を対象として群を判定することを特徴とする請求項１記載の囲碁ゲーム装置。
【請求項３】
前記局面変換手段は、当該空点の周囲８方向の互いに隣接しない２点に同色の石を有する場合に、当該２点の石と同色の石を前記空点に置くことにより局面を変換することを特徴とする請求項２記載の囲碁ゲーム装置。
【請求項４】
前記群死活判定手段によって活きと判定された前記群及び盤端のみによって囲まれた前記群と異なる色の石の群であって、前記群死活判定手段によって死活不明と判断された第２の群を死と決定する死石決定手段をさらに具備したことを特徴とする請求項１から３のいずれかに記載の囲碁ゲーム装置。
【請求項５】
前記群死活判定手段によって死活不明と判断された死活不明石を選択し、この選択した死活不明石が盤端及び味方石で構成される輪郭を構成していない行き止まりの状態にあり、かつその石から縦横方向に隣接する空点ないし味方石のみを通って味方の他の活き石に辿り着くことができない場合に死石と判定する死石決定手段をさらに具備したことを特徴とする請求項１から３のいずれかに記載の囲碁ゲーム装置。
【請求項６】
前記死石決定手段は、
前記死活不明石の周囲８方向の味方石の数を数える計数手段と、
前記計数手段によって数えられた味方石の数に応じて、前記死活不明石が行き止まりの状態であるかどうかを判断する判定手段とを具備し、
前記判定手段は、前記計数手段によって数えられた味方石数が、
０の時には行き止まりと判定し、
１の時は、前記死活不明石が盤端にない場合であって、かつ前記周囲８方向の唯一の味方石と切れている場合、または、前記死活不明石を前記局面から消去した第二の局面において前記唯一の味方石が行き止まり状態にある場合に行き止まりであると判定すると共にそれ以外の場合は行き止まりでないと判定し、
２以上の時は行き止まりでないと判定することを特徴とする請求項５記載の囲碁ゲーム装置。
【請求項７】
局面データが記憶された記憶手段を有するコンピュータを、
前記局面データ記憶手段に記憶されている局面において、縦横方向に隣接しているか、若しくは斜め方向に隣接していてかつ当該斜め方向に隣接する石に共通する隣接点２点のうち少なくとも一方が空点である状態でつながっている同色の石からなる群を判定する群判定手段と、
前記局面データ記憶手段に記憶されている局面から空点を探索し、当該空点から縦横に隣接する点の前記局面データ上の状態を順次調べ、隣接する点が空点である場合は更に再帰的に調べることにより当該空点が前記群判定手段によって判定されたある群に属する地であるか否かを検出して前記群判定手段によって判定された群に属する地の広さおよび箇所数を検出する地検出手段と、
前記地検出手段によって検出されたある群に属する地の広さおよび／または箇所数に応じて当該群の死活判定を行う群死活判定手段とに機能させるための囲碁ゲームプログラム。
【請求項８】
囲碁ゲームプログラムであって、コンピュータをさらに、前記記憶手段に記憶されている局面データ中の空点に付加石を置いて局面を変換する局面変換手段として機能させるとともに、前記群判定手段が、前記変換手段によって変換された局面を対象として群を判定するように機能させることを特徴とする請求項７記載の囲碁ゲームプログラム。
【請求項９】
囲碁ゲームプログラムであって、コンピュータをさらに、前記群死活判定手段によって活きと判定された前記群及び盤端のみによって囲まれた前記群と異なる色の石の群であって、前記群死活判定手段によって死活不明と判断された第２の群を死と決定する死石決定手段として機能させることを特徴とする請求項７または８記載の囲碁ゲームプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータや囲碁ゲーム専用の端末機等を用いて囲碁ゲームを行うための囲碁ゲーム端末、及び囲碁ゲームプログラムに関する。
【０００２】
【従来の技術】
従来の囲碁ゲーム端末には、１人で棋譜データを入力して局面を表示させて検討するもの、端末側がゲームの着手を考えて人間の相手をするもの、通信によって離れた所にいる人同士で対局するものなど各種のものがある。
【０００３】
ここで、囲碁の勝敗は、終局後に黒白双方の獲得した陣地（地）をそれぞれ数えて、地の目数（もくすう）の多い方を勝ちとする、というルールによって決められるものである。これを、地合判定（じあいはんてい）あるいは終局判定という。
【０００４】
具体的には、図１９に示したように、黒石及び盤端で囲まれた部分を黒地、白石及び盤端で囲まれた部分を白地、相手の地中で捕獲されてしまった石を死石として数え、地の多い方を勝ちと判定するものである。
【０００５】
通常の碁盤で人間同士で対局している場合には、両対局者がそれぞれ相手の地の目数を数えて勝敗を確認するが、囲碁ゲーム端末（囲碁ゲームプログラム）等においては、この地合判定を機械で自動的に判定させられるように種々の試みがなされている。
【０００６】
また、機械が次の着手を考えて人間の相手をする場合においても、その思考過程において、ゲームの究極の目標である地合判定を考慮しつつゲームの着手を決定していく事は、機械の着手決定能力を向上させるために好適な方法である。
【０００７】
しかし、このような機械による自動的な終局判定においては、それぞれの石の生き死に（死活）を判定し、死石は相手に取られたものとして（相手の地として）数えなければならず、またセキ石については何れの地としても数えてはいけないなど、囲碁のルールに基づくさまざまな判定を行う必要がある。
【０００８】
このため、従来の囲碁ゲーム端末では、完全に誤りのない地合判定を行うことができない。従って、従来の囲碁ゲーム端末においては、地合判定について、機械による自動的な判定に完全に委ねてしまうことができず、まず機械が、その機械なりの終局判定を自動的に行い、機械の判定が間違っている部分については、使用者が修正するという形で実現されていた。
【０００９】
従来、囲碁の地合計算法として特開平０６−１２６０１９号公報に開示された方法がある。この方法では、終局局面において、（１）ある盤上の空点が黒石及び盤端のみによって囲まれている場合にはその点を黒地と判定する、（２）ある盤上の空点が白石及び盤端のみによって囲まれている場合にはその点を白地と判定する、（３）黒白何れの地でもない部分はダメ（どちらの地でもない部分）と判定する、という三段階の判定をするものである。なお、ここで「空点」とは、盤上で石の置かれていない場所をいい、「盤端」とは、盤の最も外側の線のさらに外側に仮想的にひいた各辺１路ずつの線をいう。
【００１０】
【発明が解決しようとする課題】
このように従来の技術（地合計算法）では、死石の判定がされておらず、死石があった場合には、同一領域内に黒石と白石が混在するため、その部分はダメであると判定してしまうことになる。このため、この地合計算方法を用いた場合は、自動的な判定の後でプレーヤーが明示的に死石を指定する等の修正手段が必要となり、操作が煩雑となり、解りにくく、また使いにくいという欠点があった。
【００１１】
さらに、このような死石は、囲碁の終局局面においては、しばしば出現するものであるので、この修正手段を用いた修正操作が必要になる頻度も高く、プレーヤーが混乱する大きな要因の一つとなっていた。
【００１２】
さらに、終局判定を端末で行う構成では、端末に組み込まれた終局判定方法を更新する手段などはなく、バーションの違う端末やソフト同士で通信対局をした場合には、各端末での終局判定結果が違ってしまうというおそれがあった。
【００１３】
また、サーバの管理のもとで通信により対局を行う場合、通信終局判定をサーバで行うこともできるが、サーバが管理している対局数が増え処理負担が増大するといった混雑度によっては、終局判定に要する時間が長くなり、これによってさらにサーバの混雑度が増大するというような悪循環を誘発するおそれがあった。
【００１４】
本発明は、前記のような問題に鑑みなされたもので、ユーザからの指示を要することなく自動的に活き石及び死に石を判定し、またサーバの混雑度及び端末のバージョンの新旧に応じて終局判定を行う装置を変えることにより、終局判定処理の正確性を高め、誤りを少なくすると共に、操作が簡単で使いやすくした囲碁ゲーム装置、及び囲碁ゲームプログラムを提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明は、終局判定処理を実行する囲碁ゲーム装置において、局面データを記憶する局面データ記憶手段と、前記局面データ記憶手段に記憶されている局面において、縦横方向に隣接しているか、若しくは斜め方向に隣接していてかつ当該斜め方向に隣接する石に共通する隣接点２点のうち少なくとも一方が空点である状態でつながっている同色の石からなる群を判定する群判定手段と、前記局面データ記憶手段に記憶されている局面から空点を探索し、当該空点から縦横に隣接する点の前記局面データ上の状態を順次調べ、隣接する点が空点である場合は更に再帰的に調べることにより当該空点が前記群判定手段によって判定されたある群に属する地であるか否かを検出して前記群判定手段によって判定された群に属する地の広さおよび箇所数を検出する地検出手段と、前記地検出手段によって検出されたある群に属する地の広さおよび／または箇所数に応じて当該群の死活判定を行う群死活判定手段とを具備したことを特徴とする。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施形態におけるゲーム端末１０の電子回路の構成を示すブロック図である。ゲーム端末１０は、囲碁ゲーム専用端末として構成されるものとする。なお、ゲーム端末１０は、各種の記録媒体に記録されたプログラムを読み込み、この読み込んだプログラムによって動作が制御されるコンピュータによって構成することができる。
【００１８】
図１に示すように、本実施形態におけるゲーム端末１０は、ＣＰＵ１１、ＲＯＭ１２、ＳＲＡＭ１４、タッチパネル１６、ＬＣＤドライバ周辺回路１８、ＬＣＤ１９、記憶装置２０、通信インタフェース２２、スピーカ２３、及び電池２５によって構成されている。
【００１９】
ＣＰＵ１１は、ＲＯＭ１２に格納された各種制御プログラムやデータに従って各種機能を実現するもので、ユーザとの対局を制御するための囲碁ゲーム対局機能、対局の終局判定を行うための終局判定機能などを含んでいる。終局判定では、囲碁の局面において各石についての活き死にを判定する死活判定処理が実行される。
【００２０】
ＲＯＭ１２は、ＣＰＵ１１によって実行される囲碁ゲームプログラムやデータ等が格納されるものであり、囲碁ゲームプログラムには囲碁ゲーム対局機能を実現するための囲碁ゲーム対局用プログラム、終局判定機能を実現するための終局判定プログラムなどを含んでいる。また、ゲーム端末１０あるいはＲＯＭ１２に格納されたプログラムを識別するためのバージョン情報、終局判定端末判断データ（詳細については後述する）などが製造時などにおいて予め格納されているものとする。
【００２１】
ＳＲＡＭ１４は、ＣＰＵ１１によって各種機能を実行する際の作業領域として使用され、例えば対局の状況に関するデータ、例えば棋譜（局面）データなどが格納される。
【００２２】
タッチパネル１６は、装置に対する動作を規定するボタンや囲碁ゲーム実行中の着手位置を示す座標データの入力に使用される。
【００２３】
ＬＣＤドライバ周辺回路１８は、ＣＰＵ１１の制御のもとで、ＬＣＤ１９における表示を制御する。
ＬＣＤ１９は、囲碁ゲームを行なう上で必要な各種の情報を表示するもので、碁盤の盤面を表す盤面表示、ハマの数を黒石、白石それぞれについて表示するためのハマ表示、黒番、白番それぞれの時間を表示するための時間表示、動作を規定する指示を入力するための複数のボタンなどがＬＣＤドライバ周辺回路１８により表示される。
【００２４】
ＬＣＤ１９の表示面とタッチパネル１６の座標データ入力面とは、積層一体型に構成されており、ＬＣＤ１９によって表示された対象物（例えば碁石を示す表示パターン、盤面を表す表示中の交点位置、ボタンなど）を、ペンなどによって直接的に指示することで、該当する位置の座標データを入力することができる。
【００２５】
記憶装置２０は、過去に行った対局や現在実行中の対局についての対局棋譜（局面）データ（図２（ａ）参照）や、終局判定を行う装置を決めるために使用される終局判定端末判断データ（図２（ｂ）参照）などが格納される。
【００２６】
通信インタフェース２２は、通信回線網を介して接続された相手と囲碁ゲームを実施する際に用いられるもので、ＣＰＵ１１の制御のもとで通信制御を行なう。
【００２７】
スピーカ２３は、ＣＰＵ１１の制御のもとで音を発声させるもので、対局中における効果音や音声メッセージなどを出力するために用いられる。
【００２８】
電池２５は、ゲーム端末１０を屋外等に持ち出して携帯することができるように、各構成部に電力を供給するために使用される。
【００２９】
なお、図１では携帯型の囲碁ゲーム専用端末を想定して説明を行ったが、本発明における実施形態はこれに限定するものではなく、例えばパソコン端末で囲碁ゲームを行う場合、また前記パソコン端末を他のパソコン端末と通信接続を行い、双方のパソコン端末でデータ通信を行いながら囲碁ゲームを楽しむ場合等も考えられる。
【００３０】
図２には、ゲーム端末１０に格納される棋譜（局面）データと終局判定端末判断データの一例を示している。図２（ａ）に示す棋譜（局面）データは、対局の状況を表すもので、手数、手番（黒番、白番）、盤面上の着手位置を示す座標データとが対応づけて登録されている。棋譜（局面）データに格納された座標データをもとに、各着手の石を盤面上に表示することである局面を表すことができる。終局判定では、棋譜（局面）データの座標データをもとにして各石に対する死活判定処理が実行される。終局判定端末判断データは、後述する第５及び第６実施形態において、終局判定を何れの端末において実行すべきかを判断するために参照されるもので、自端末のバージョン情報と他の端末（相手端末）のバージョン情報との組合わせに対して、何れのバージョン情報の端末が終局判定端末とするかを示すデータが格納されている。終局判定端末判断データは、例えばゲーム端末１０の製造時に予め格納されているものとする。また、第７実施形態では、囲碁対局サーバ３０（後述する）によって終局判定を実行すべき端末を判断するが、そのために囲碁対局サーバ３０にも終局判定端末判断データが格納されるものとする。ただし、囲碁対局サーバ３０に格納される終局判定端末判断データには、異なるバージョン情報同士の組み合わせに対して、何れのバージョン情報の端末が終局判定端末とするかを示すデータが含まれるものとする。
【００３１】
次に、本発明における各実施形態（第１〜第７実施形態）の動作について説明する。
まず、第１実施形態について説明する。
第１実施形態は、棋譜（局面）データとして記憶されている囲碁の局面について、自動的に各石の生き死にを判定し、その判定結果を用いて終局判定処理や着手思考処理を行うことによって、これらの処理の性能を向上させるものである。
【００３２】
第１実施形態では、囲碁の局面において、縦横または斜め方向につながっている一方の色の石の一団（以下「味方石」という）が、その味方石と盤側のみで囲まれていて、かつその内部にもう一方の色の石（以下「敵石」という）がない領域を２ヶ所別々にもっている場合には、その味方石を活きと判定する。
【００３３】
ゲーム端末１０は、囲碁ゲーム対局用プログラムを実行することで、囲碁ゲームの対局を実行する。ここでは、ゲーム端末１０と人とが対局を行う場合でも良いし、２つのゲーム端末１０を通信によって接続して２人で対局を行う場合でも良い。ゲーム端末１０は、対局の進行（相互の着手）に応じて、着手を棋譜（局面）データとして順次格納していく。
【００３４】
また、ゲーム端末１０は、終局判定プログラムを実行することで、対局に伴って格納された棋譜（局面）データに対する局面の終局判定を実行し、その終局判定の中で各石について活き死にを判定する死活判定処理を実行する。以下、図３に示すフローチャートを参照しながら第１実施形態の死活判定処理について説明する。
【００３５】
まず、ゲーム端末１０は、棋譜（局面）データをもとにした局面の各石の「群」を判定するための群判定処理を実行する（ステップＡ１）。例えば、棋譜（局面）データには、図４（ａ）に示したような局面のデータが記憶されているものとする。なお、図４（ａ）では、説明を簡単にするために便宜上小さい盤（９路盤）の盤面を示している。
【００３６】
「群」とは、同色の石であって、縦横斜め方向につながっているものをいい、囲碁における石の死活は、この「群」一体として「群」ごとに決まる。すなわち「群」は、囲碁における死活の最小単位であるということができる。
【００３７】
また、「つながっている」とは、以下の何れかの条件（１）（２）を満たす場合をいう。ゲーム端末１０は、群判定処理によって以下の条件（１）（２）を満たしているかを各石について判別する。
【００３８】
（１）同色の２つの石が縦横方向に隣接している。
（２）同色の２つの石が斜め方向に隣接していて、かつ、当該２つの石に共通する隣接点２点のうち少なくとも一方が空点である。（注：２点とも敵の石である場合は「つながっていない」。２点のうち少なくとも１点が味方の石である場合は上記（１）で処理できるため「つながっている」。）
なお、これらの「つながっている」又は「つながっていない」場合の具体的な例を図５に示してある。ここで、つながっていない例として挙げてある形（図５（ｅ））は、黒と白がともに切り結んでいる形であり、「キリ違い」という。この場合は、黒も白も何れも「つながっていない」。
【００３９】
ゲーム端末１０は、図４（ａ）に示す局面に対して群判定処理を実行することにより、図４（ｂ）に示すような、各石を群に分けた結果が得られる。図４（ｂ）に示すように、黒石は群１（数字１で表す）及び群４の２つの群があり、白石は群２、群３、群５の３つの群がある。
【００４０】
次に、ゲーム端末１０は、群判定処理の結果に対して、群に属する地検出処理を実行して、それぞれの群に属する地を判定する（ステップＡ２）。
「群に属する地」とは、ここでは、任意の一の群及び盤端のみによって囲まれた空点の集合した領域をいい、囲碁における「地」の概念に蔵するもののうち、内部に敵の石がない場合をいう。内部に敵の石がある場合は、その敵石が死に石であればその部分も「群に属する地」になり得るが、その敵石が活き石であれば「群に属する地」になり得ない。
【００４１】
以下、ゲーム端末１０は、図６（ａ）（ｂ）に示すフローチャートに従って、以下のようにして群に属する地検出処理を実行する。
まず、ゲーム端末１０は、図６（ａ）のフローチャートに従って、棋譜（局面）データが示す局面の状態を参照し、盤面上の一点を選択しながら、空点であってまだ調べたことのない点を探す（ステップＢ１，Ｂ２）。そして、そのような点が見つかったならば、最初に到達した石色保持手段（後述するステップＣ６においてセットされる）をリセットし（ステップＢ３）、その空点について図６（ｂ）のフローチャートに示す黒白地判定処理を実行する（ステップＢ４）。
【００４２】
黒白判定処理では、空点であってまだ調べたことのない点の盤上の座標をもとに、その点に対して、まだチェックしていない縦横何れか一方の隣接点を順次選択しながら（縦横４方向）（ステップＣ１，Ｃ８）、縦横の隣接点が空点であるか（ステップＣ２）、何れかの色の石であるか盤外であるかを調べる。
【００４３】
縦横の隣接点が空点でない場合（ステップＣ２）、到達したのが何れの石であるかにより、以下の何れかの処理（１）（２）（３）を実行する。ここで、何れか一方の色の石と盤外のみに到達するようなら、その色の石に囲まれている地であると判定する。
【００４４】
（１）その石が最初に到達した石であったならその石の色を石色保持手段に記憶する（ステップＣ５、Ｃ６）。
【００４５】
（２）その石が最初に到達した石でなく（ステップＣ５）、かつ最初に到達した石と同色なら（ステップＣ７）、この方向は問題ない（地としての条件を満たしている）ので次の方向の調査へ移る（ステップＣ８）。縦横４方向全ての隣接点についての処理が終了していれば、地としての条件を満たしているとして調査を終了する（戻り値ＴＲＵＥ）。
【００４６】
（３）その石が最初に到達した石でなく（ステップＣ５）、かつ最初に到達した石と違う色ならば（ステップＣ７）、この空点の一群は、何れか一方の石と盤端のみに囲まれているという条件を満たさないので、元の点に関する調査を終了する（戻り値ＦＡＬＳＥ）。
【００４７】
一方、縦横隣接点が空点である場合は（ステップＣ２）、その空点の縦横４方向について、再帰的に同様の黒白地判定処理を行っていき（ステップＣ３）、何れか一ヶ所でも敵の石に到達したら条件を満足していないと判定し（戻り値ＦＡＬＳＥ）、全ての連続する空点の隣接点に同じ色の石もしくは盤端のみがあるような場合は、その群に属する地として判定する（戻り値ＴＲＵＥ）。
【００４８】
以上のように黒白地判定処理を実行した結果、図４（ｂ）に示す群１〜群５の各群に属する地は、図４（ｃ）に示す▲１▼及び▲３▼に示す部分が、それぞれ群１、群３に属する地と判定することができる。すなわち、黒石の群１は、左上隅に３目の地と中央上寄りに１目の２カ所の地を有し、また白石の群３は、右上隅方面に１０目の地を有する。他の２群、４群、５群は「群に属する地」を有していないと判定することができる。
【００４９】
次に、ゲーム端末１０は、群に属する地検出処理の結果に対して、群死活判定処理を実行して各群の死活を判定する（ステップＡ３）。
【００５０】
群死活判定処理では、ある群の「群に属する地」が、次の（１）または（２）の何れかの条件を満たす場合には、その群を活きと判定する。
（１）ある群が、２ヶ所以上の相異なる場所に分かれた「群に属する地」を有している。
（２）ある群が、１ヶ所で、ある一定以上の目数の「群に属する地」を有している。
【００５１】
ここで、条件（２）において、「ある一定以上の目数」とは、囲碁の死活及び詰碁に関する知識から経験的に決定する値であり、これ以上の広さの地を持っていれば、活きと判定することができる地の広さである。
【００５２】
例えば、いわゆる「板六」という形の６目地は活きであるが、「花六」という形の６目地は敵に先着されると死であることから、「７」と定めるのも一つの方法である。また、「死ぬことがありえない広さ」という意味で言えば、「一合マス」等のさらに広い死形を考慮する方法も考えられる。ただし、ここでは、内部に敵石が存在しているような、いわゆる「ナカデ」の形を含めて考えた場合の「死ぬことがありえない広さ」までを考える必要はない。すなわち、群死活判定処理では、あくまで「内部に敵石の存在しない、群に属する地の広さ」が比較対象だからであり、また、そうでなければ「死ぬことがありえない広さ」が決まらないからである。
【００５３】
群死活判定処理の結果、図４（ｃ）における群１については、２ヶ所に「群に属する地」を有しているので「活き」と判定できる。また、群３については、１ヶ所で１０目の地を有しているので「活き」と判定できる。
【００５４】
このようにして、第１実施形態による死活判定処理によって、囲碁の終局局面のなかで確実に活きていると判断できる石の「群」を判定できる、すなわち明らかに広い地を持って活きている石の群や、明らかに２眼を持って活きている石の群を活きと判定することができるため、終局判定処理または着手思考処理の性能を向上することができる。
【００５５】
次に、第２実施形態について説明する。
第１実施形態では、棋譜（局面）データが示す局面に対して直接死活判定を行っているが、第２実施形態は、棋譜（局面）データが示す局面に対して一定の局面変換を行って、その局面に対して第１実施形態と同様の処理を実行するものである。
【００５６】
第２実施形態では、囲碁の局面において、死活不明なある一個の味方石Ａの周囲８方向の何れかに空点Ｂがあり、かつその空点Ｂの周囲８方向の点のうち、元のＡ点及びＡ点の周囲８方向の隣接点を除いた残りの点Ｃに、点Ａと同色の味方石がある場合に、そのＢ点に点Ａ及び点Ｃと同色の味方石を置いて局面を変換する。この変換した局面に対して、第１実施形態を適用して、一定の要件を満たす場合にはその死活不明だった味方石の一団を活きと判定する。
【００５７】
図７には、第２実施形態の死活判定処理のフローチャートを示している。図７のフローチャートにおける死活判定処理は、ステップＤ１における局面変換処理を第１実施形態の死活判定処理に追加したものである。ステップＤ２〜Ｄ４は、図３に示すステップＡ１〜Ａ３と同様の処理を実行するものとして説明を省略する。
【００５８】
まず、ゲーム端末１０は、棋譜（局面）データをもとにした局面に対して局面変換処理を実行する（ステップＤ１）。図８（ａ）には第２実施形態の説明で用いる棋譜（局面）データが示す局面の一例を示している。図８（ａ）に示す局面は、第２実施形態が特に効果的であるような局面の一例である。
【００５９】
図８（ａ）の局面に対して第１実施形態による死活判定処理を適用すると、黒の群１が活きていると判定されない。なぜなら、図８（ａ）の局面では、群１に属する地は点Ａの一ヶ所に１目のみしかないからである。また、同様に白の群３についても活きていると判定されない。このため、このままでは、図８（ａ）の局面について各群の死活を定めて自動的に地合を計算等させることができない。
【００６０】
そこで、第２実施形態では、元の棋譜（局面）データが示す局面を局面変換処理によって以下のようにして変換し、その変換した局面に対して第１実施形態を適用することで前述した状況を回避する。
【００６１】
局面変換処理の動作を図９を用いて説明する。局面変換処理では、図９（ａ）に示すように、ある死活不明石の周囲８方向の何れかが空点であって、さらにその外側に味方石がいるような地点を探索し、そのような空点に当該死活不明石と同色の石を置いた局面を生成する。例えば、図９（ａ）中の点Ａの黒石に対しては、図９（ｂ）（ｃ）（ｄ）に示すように、空点に死活不明石と同色の石（図中ハッチングで表す石）を置く。これは、言い換えれば、図９（ｅ）（ｆ）（ｇ）に示したような、「一間トビ」「ケイマ」「ハザマ」などの囲碁の形について、その間に味方の石があって、死活不明石と周辺の石とがつながっていると仮定した局面に変換することになる。
【００６２】
なお、通常の囲碁の終局局面には局面を変換するために石を置ける空点が複数ある場合が多いが、局面変換処理では、それら複数の空点のうち一つの点を所定の順番で順次選択し、それぞれの点により変換した局面を順次、後段の処理（群判定処理以降）に出力する。すなわち、一手着手をして明らかな活き形となれば、その石の群について活きと判定できるので、複数の空点のいずれかに石を置いて変換した局面について、それぞれ各群の死活を判定する。
【００６３】
このようにして、局面変換処理を実行することにより、例えば図８（ｂ）中に示す「ア」点に黒石を置いた局面について、群判定処理（ステップＤ２）を実行することにより、図８（ｄ）に示すように黒の群１が判定され、地検出処理（ステップＤ３）を実行することにより、図８（ｅ）に示すように「Ａ」「Ｂ」「Ｃ」の空点が群１に属する地と検出される。従って、群１は３ヶ所に１目ずつの「群に属する地」を有することとなり、群死活判定処理（ステップＤ４）により、群１が活きていると判定できる。
同様にして、白の群３については、局面変換処理で、図８（ｃ）に示す「イ」点に白石を置いた局面に変換することにより、同様にして白の群３が活きていると判定できる。
【００６４】
なお、前述した説明では、局面の変換のために石を置く点を一つに限定しているが、複数の空点に同時に石を置いた局面に変換して、後段の処理（群判定処理以降）の対象とするようにしても良い。
【００６５】
このようにして、第２実施形態によれば、局面変換処理により変換した局面を対象として死活判定処理を実行することにより、囲碁の局面において、一手または数手の着手をすれば、明らかに広い地または２眼を持って活きていると判断される石の群を活きと判定することができ、終局判定装置や囲碁着手生成装置の性能を向上することができる。
【００６６】
次に、第３実施形態について説明する。
第３実施形態は、第１実施形態あるいは第２実施形態による死活判定処理に、死石決定処理を付加して、さらに精度の良い終局判定を行うものである。
【００６７】
第３実施形態では、死活不明である何れか一方の色の石（敵石）であって、第１実施形態若しくは第２実施形態における死活判定処理によって活きていると判定されたもう一方の色の石（味方石）又は盤端にかこまれているものを死石と判定し、死石及び死石のある部分を味方の地と判定する。
【００６８】
図１０には、第３実施形態の死活判定処理のフローチャートを示している。図１０に示すフローチャートにおける死活判定処理は、ステップＥ５における死石決定処理を第２実施形態の死活判定処理に追加したものである。ステップＥ１〜Ｅ４は、図７に示すステップＤ１〜Ｄ４と同様の処理を実行するものとして説明を省略する。
【００６９】
ゲーム端末１０は、棋譜（局面）データをもとにした局面にステップＥ１〜Ｅ４の各処理を実行した結果に対して、死石決定処理を実行する（ステップＥ５）。図１１（ａ）には第３実施形態の説明で用いる局面の一例を示している。図１１（ａ）に示す局面について、ステップＥ１〜Ｅ４の処理を実行すると、図中に示したように、中白点付き黒石、及び中黒点付き白石の部分が、それぞれ「活き石の群」と判定される。しかし、これだけでは終局判定が完全に終了したということはできない。なぜなら、黒地中の白の死石と白地中の黒の死石が死石であると判定されていないので、これらの石の含まれている部分が何れの地であるか不明のままだからである。
【００７０】
以下、ゲーム端末１０は、図１２（ａ）（ｂ）に示すフローチャートに従って、以下のようにして死石決定処理を実行する。
まず、ゲーム端末１０は、図１２（ａ）のフローチャートに従って、盤上の未チェックであり、死活が不明である石（以下「元の石Ａ」という）を探索する（ステップＦ１，Ｆ２）。死活が不明な石が見つかったら、その元の石Ａの周囲４方向の隣接点に着目し、以下、図１２（ｂ）に示すフローチャートに従って、死石を判定する死石判定処理を実行する（ステップＦ３）。以上の処理を全ての点について実行する（ステップＦ４）。
【００７１】
死石判定処理では、まだチェックしていない縦横何れか一方向の隣接点を選択し（ステップＧ１）、その隣接点が敵石（ステップＧ２）、味方石（ステップＧ３）、空点（ステップＧ４）、盤外（ステップＧ５）の何れがあるかに応じて処理を実行する。
【００７２】
まず、隣接点に敵石があって（ステップＧ２）、その敵石が活き石である場合（ステップＧ７）、他方向の隣接点の状態次第では、まだ元の石Ａが死石である可能性がある。従って、他の方向の隣接点を選択して（ステップＧ６，Ｇ１）、引き続き死石判定を継続する。
【００７３】
また、隣接点に敵石があって（ステップＧ２）、その敵石が死に石または死活不明石である場合（ステップＧ７）、元の石Ａと敵の石の何れが真の死に石か不明である（セキ等の可能性もある）ので、元の石Ａについて死石と判定することはできない。従って、元の石Ａを活き石として、他方向の隣接点についての死石判定も全て打ち切りとする。
【００７４】
また、隣接点に味方石があって（ステップＧ３）、その味方石が活き石である場合（ステップＧ８）、元の石Ａも活き石である可能性があるため、元の石Ａについて、死石と判定することはできない。従って、元の石Ａを活き石として、他方向の隣接点についての死石判定も全て打ち切りとする。
【００７５】
また、隣接点に味方石があって（ステップＧ３）、その味方石が死石または死活不明石である場合、元の石Ａが死石である可能性が否定されないので、再帰的に隣接点について同様にして死石判定処理を実行する（ステップＧ９）。すなわち、図１１（ａ）に示した局面において、例えば白の死活不明石のうち一つである「ア」を元の石Ａとして選んだ場合、その隣の石（ここでは「イ」）などの地点を探索した場合は味方の死活不明石に到達することになる。そして、この場合は、さらにその味方石の周囲４方向について探索を進めていくようにしなければならない。そうしなくては、「ウ」やその周辺の黒の状態を探索できないからである。つまり、味方の石に到達した場合は、それが味方の活き石であれば、そこで探索終了とするが、そうでなければ、その点も空点である場合と同様の処理を進めるようにする。この再帰的な死石判定処理を実行した結果、活き石と判定された場合には（ステップＧ１０）、元の石Ａを活き石として、他方向の隣接点についての死石判定も全て打ち切りとする。一方、死に石と判定された場合には（ステップＧ１０）、他の方向の隣接点を選択して（ステップＧ６，Ｇ１）、引き続き死石判定を継続する。
【００７６】
また、隣接点が空点である場合（ステップＧ４）、その点の座標を入力して、再帰的に死石判定処理を行う（ステップＧ９）。すなわち、元の石Ａが、敵の活き石で囲まれた地の中にある石かどうかを調べているため、隣接点が空点である場合には死石判定処理を再帰的に実行することで石を探索して死活を判定する。
【００７７】
また、隣接点が盤外である場合には（ステップＧ５）、元の石Ａが敵の活き石及び盤端に囲まれた死に石である可能性があるので、引き続き死に石判定を継続する。
【００７８】
ここで、元の石Ａについて全ての隣接点について調査が終了した場合（ステップＧ６）、すなわちステップＧ７，Ｇ８，Ｇ１０において活き石として判定され無かった場合には元の石Ａを死に石として判定する。
【００７９】
このようにして、死石決定処理（死石判定処理）を実行することによって、図１１（ａ）に示す局面については図１１（ｂ）に示すように、中白点付き黒石によって示す「活き石の群」及び盤端に囲まれている「×」が付された白石（４石）と、中黒点付き白石によって示す「活き石の群」及び盤端に囲まれている「×」が付された黒石（３石）を死に石として決定することができる。これによって、その死石のある領域も敵の地として確定することができ、囲碁の終局計算の精度が向上し、良好な終局判定の結果を得ることができる。
【００８０】
次に、第４実施形態について説明する。
第４実施形態は、囲碁の終局局面での地合を判定する際に、▲１▼ある石が輪郭を構成していない「行き止まり状態」の石であるか否かを調べ（行き止まり判定処理）、▲２▼当該石が「行き止まりである」と判別された場合には、さらに、当該石が、（ａ）味方石及び盤端のみによって囲まれているか、（ｂ）敵石及び盤端のみによって囲まれているか、（ｃ）前記（ａ）（ｂ）の何れでもないか、の何れであるかを調べ、当該石が前記（ｂ）に該当する場合（すなわち、当該石から縦横方向に隣接する空点ないし死活不明の味方石のみを通って、味方の活き石に辿り着くことができない場合）に当該石を死石と判定する死石決定処理を、第１実施形態あるいは第２実施形態による死石判定処理に付加して、さらに精度の良い終局判定を行うものである。
【００８１】
なお、第４実施形態において、「輪郭」とは、囲碁の「地」を囲む外周を形成する同色の石をいう。また、「行き止まり」とは、「輪郭」を構成していない石のことを指し、具体的には、ある石（以下この文において「当該第一の石」という）が、以下の▲１▼▲２▼の何れかに該当する場合を言う。▲１▼当該第一の石が、周囲につながっている味方石を全く有していない、完全に孤立している石である場合、▲２▼当該第一の石が、周囲に１個のみのつながっている味方石を有している場合であって、当該第一の石を起点として、一度通った味方石を通ることなくつながっている味方石を辿っていったときに、(a)ある石からの辿り方が二以上の方向に分岐していることにより辿り方が一意に定まらないような石にたどり着くことなく、かつ、(b)盤端にたどり着くこともなく、一度も通っていない味方石を辿ることが不可能となってしまう場合。
【００８２】
第４実施形態では、囲碁の終局局面において、ある石が、盤端及び味方石で構成される輪郭の一部を構成している石ではなく、かつその石から縦横方向に隣接する空点ないし味方石のみを通って味方の他の活き石に辿り着くことができない場合に、その石を死石と判定する。
【００８３】
図１３には、図１０に示すフローチャートの死石決定処理（ステップＥ５）のフローチャートを示している。なお、第３実施形態と同様にして、ステップＥ１〜Ｅ４は、図７に示すステップＤ１〜Ｄ４と同様の処理を実行するものとして説明を省略する。
【００８４】
まず、ゲーム端末１０は、図１３（ａ）のフローチャートに従って、盤上の未チェックであり、死活が不明である石（以下「元の石Ｂ」という）を探索する（ステップＨ１，Ｈ２）。死活が不明な石が見つかったら、その元の石Ｂの周囲８方向の隣接点に着目し、以下、図１３（ｂ）に示すフローチャートに従って、味方の他の活き石に辿り着くことができるか、あるいは行き止まりとなるかを判定する行き止まり判定処理を実行する（ステップＨ３）。
【００８５】
行き止まり判定処理では、まず、元の石Ｂの周囲８方向に存在する味方石の数（以下、味方石数）を数え（ステップＪ１）、その味方石数に応じた処理を実行する。
ここで、周囲に１つも味方石がない場合には（ステップＪ２）、その石は輪郭を構成していることが有り得ないので、「行き止まりである」という判定結果をもって行き止まり判定処理を終了する。なお、この場合、その石は、味方の地中の孤立石であって活き石である場合も考えられ、また敵の地中の孤立石であって死に石である場合も考えられるため、この段階で死活を決定することはしない。
【００８６】
また、周囲に２個以上の味方石が存在していた場合（ステップＪ３）、その石は輪郭を構成している可能性があり、行き止まりではないので「行き止まりではない」という判定結果をもって行き止まり判定処理を終了して、次の死活不明石を探索する。
【００８７】
また、周囲に１個の味方石が存在していて（ステップＪ３）、かつ盤端に接している場合にも（ステップＪ４）、その石は輪郭を構成している可能性があるため、死石と判定することはできず、「行き止まりではない」という判定結果をもって行き止まり判定処理を終了して、次の死活不明石を探索する。
【００８８】
他方、周囲に味方石が１つのみ存在していて（ステップＪ３）、かつ現在着目している石が盤端にない場合にも（ステップＪ４）、その石は輪郭を構成しておらず、いわばその石で味方石のつながりが「行き止まり」になっている可能性がある。このような場合に、唯一の味方石につながっている味方石のつながりを辿っていき、味方の活き石につながっていれば、その行き止まりになってしまっていた石も活きているということができるが、一方で、味方石を辿っていった反対の方も行き止まりになっていた場合には、結局一本の棒状の孤立石であるといえるので、周囲に１つも味方石のない「完全に孤立した石」と同じように扱うことができる。つまり、味方の地中にある棒状の孤立石であって活き石である場合と、敵の地中にある棒状の孤立石であって死に石である場合とが考えられる。
【００８９】
そのため周囲に味方石が１つのみで、現在着目している石が盤端にない場合（ステップＪ３，Ｊ４）には、さらに唯一の味方石と現在注目している石が、キリ違い（図５（ｅ）参照）で「つながっていない」と判定される場合には（ステップＪ５）、つながりはそこで切れてしまっているので、「行き止まりである」という判定結果をもって「行き止まり判定処理」を終了する。
【００９０】
また、その唯一の味方石がキリ違いではなく、既に活き石と判定された石であった場合には（ステップＪ６）、味方の活き石につながっていることになるので、「行き止まりでない」という判定結果をもって「行き止まり判定処理」を終了する。
【００９１】
唯一の味方石が上記の何れでもない場合には（ステップＪ６）、さらにその隣の石について探査して味方石を辿っていくために、まず、現在調査している元の石Ｂを消去した盤面を仮に作成して一時記憶し（ステップＪ７）、その「唯一の味方石」が、その仮に作成した盤面で「行き止まり」であるかどうかを判定する（ステップＪ８）。すなわち、再帰的に行き止まり判定処理を実行する。これにより、元の石Ｂが消去されているので、その「唯一の味方石」が、もともと、隣接点に２個しか味方石のない石だったとすると、仮に作成した新しい局面では「行き止まり」と判定されることになる。こうして、順次、元の石を消去しながら、その石で行き止まりになっているかどうかを再帰的に判定していくことによって、棒状につながっている石を順次辿っていくことになる。そして、最終的に、反対の端が行き止まりになっているのか、あるいは盤端になっているのか等をつきとめることによって、一番最初の元の石Ｂが孤立した石であるのか、あるいは別の活きている味方石につながっているのか、あるいは輪郭を構成している石につながっているのか、を判定することができる（ステップＪ９）。
【００９２】
以上のような行き止まり判定処理を行った結果、最初に注目した死活不明石（元の石Ｂ）が「行き止まりである」と判定された場合は（ステップＨ４）、さらに、その石から空点及び味方石のみを辿って、別の場所の味方の活きている石に辿り着けるか否かを探査する（ステップＨ５）。もし他の場所の味方の活き石に辿り着けた場合には、その「行き止まり」の石は味方の地中にある活き石であると考えられるため、全ての点について調査が終了していなければ次の死活不明石を探索する（ステップＨ７）。一方、味方の活きている石に辿り辿り着かない場合には、その石は、輪郭を構成しておらず、かつ、味方の地中にある石でもないため、敵の地中にある死に石であると判定し（ステップＨ６）、全ての点について調査が終了していなければ次の死活不明石を探索する（ステップＨ７）。
【００９３】
このようにして、第４実施形態では、囲碁の終局局面において、輪郭を構成している石ではなく、かつ味方の活き石に辿り着けない孤立してしまっている石を死に石と判定できるので、終局判定などを良好に行うことができるため、終局判定処理または着手思考処理の性能を向上することができる。
【００９４】
次に、第５乃至第７実施形態について説明する。前述した第１乃至第４実施形態では、ゲーム端末１０に格納された棋譜（局面）データが示す局面に対して、ゲーム端末１０において終局判定（死活判定処理を含む）を実行するものとしているが、通信回線網を介して接続された相手（他のゲーム端末１０）との間で囲碁ゲームの対局を行う場合には、自ゲーム端末１０以外の装置において終局判定を実行することができる。第５及び第６実施形態は、囲碁ゲーム対局をしているゲーム端末１０の何れかにおいて終局判定を実行する場合に適用するものであり、さらに第７実施形態は、囲碁対局サーバ３０を介して囲碁ゲーム対局をしている場合に、囲碁対局サーバ３０においても終局判定を実行する場合に適用するものである。
【００９５】
図１４は、第５乃至第７実施形態を適用する対局システムの構成の一例を示している。図１４に示す対局システムは、通信回路網３２を介して、囲碁対局サービスを提供する囲碁対局サーバ３０、ゲーム端末１０（１０−１，１０−２，１０−３）、パーソナルコンピュータ３４などを相互に接続することができる。パーソナルコンピュータ３４では、囲碁ゲームプログラムを実行することで、ゲーム端末１０と同等の機能を実現出来るものとする。第５及び第６実施形態では、ゲーム端末１０（１０−１，１０−２，１０−３）あるいはパーソナルコンピュータ３４が、直接、通信回路網３２を介して接続され、第７実施形態では、囲碁ゲーム対局を行うゲーム端末１０（１０−１，１０−２，１０−３）あるいはパーソナルコンピュータ３４が囲碁対局サーバ３０を介して接続されて囲碁ゲーム対局を行うものとする。
【００９６】
図１５は図１４中に示す囲碁対局サーバ３０の電子回路の構成を示すブロック図である。囲碁対局サーバ３０は、各種の記録媒体に記録されたプログラムを読み込み、この読み込んだプログラムによって動作が制御されるコンピュータによって構成される。
【００９７】
囲碁対局サーバ３０は、図１５に示すように、ＣＰＵ４０、通信ユニット４２、記憶装置４３、記録媒体４４、メモリ４５、及びデータベース装置４６を有して構成される。
【００９８】
ＣＰＵ４０は、囲碁対局サーバ３０全体の制御を司るもので、メモリ４５に格納されたプログラム（囲碁対局プログラム等）やデータ等に基づいて動作することにより各種の機能を実現する。囲碁対局サーバ３０において実現される機能としては、通信手段を介した相手との囲碁の対局を制御する機能（対局処理）、対局の終局判定を実行すべき装置（囲碁対局サーバ３０、対局を行っているゲーム端末１０の何れか）を指定する終局判定端末指定機能（第７実施形態）、自らが終局判定をすべきと指定した場合に対局の終局判定を行う終局判定機能、囲碁に関する各種の情報を提供する機能（囲碁データベース）などが含まれている。
【００９９】
通信ユニット４２は、インターネットや公衆回線網を介した外部との通信を制御するユニットである。
【０１００】
記憶装置４３は、各種プログラムやデータを格納するためのものであって、例えば対局の管理のために生成される各種リスト（棋譜（局面）データなど）のデータも必要に応じて格納される。記憶装置４３は、プログラム、データ等が予め記録されている記録媒体４４を有しており、この記録媒体４４は磁気的、光学的記憶媒体、もしくは半導体メモリで構成されている。この記録媒体４４は、記憶装置４３に固定的に設けたもの、もしくは着脱自在に装着するものである。また、記録媒体４４に記憶されるプログラム、データ等は、通信回線等を介して接続された他の機器から受信して記憶する構成にしても良く、さらに、通信回線等を介して接続された他の機器側に記録媒体を備えた記憶装置を設け、この記録媒体に記憶されているプログラム、データを通信回線を介して使用する構成にしても良い。
【０１０１】
メモリ４５は、ＣＰＵ４０によってアクセスされるためのプログラムやデータが格納されるもので、必要に応じて記憶装置４３またはデータベース装置４６から読み出されて格納される。メモリ４５には、例えばゲーム端末１０間で対局が行われることで棋譜（局面）データが格納されて、終局判定処理の処理対象データとして参照される。
【０１０２】
データベース装置４６は、各種の情報を蓄積しておくための記憶装置であり、囲碁対局サービスの提供先である会員に関する情報が登録された会員リスト４６ａ、過去に行われた対局の棋譜（局面）データ４６ｂを含んでいる。
【０１０３】
なお、図１４中のゲーム端末１０（１０−１，１０−２，１０−３）は、図１と同様の構成を有するものとして詳細な説明を省略する。ただし、自端末が対局の終局判定を実行すべきであるか否かを判断する終局判定端末判断機能（第５実施形態）、対局の終局判定を実行すべき端末を指定する終局判定端末指定機能（第６実施形態）を実現するプログラムが囲碁ゲームプログラムに含まれているものとする。また、ゲーム端末１０には、端末あるいは端末に格納された囲碁ゲームプログラムを識別するためのバージョン情報が格納されているものとする。
【０１０４】
次に、第５実施形態について説明する。
第５実施形態は、囲碁対局サーバ３０を介さずにゲーム端末１０間で通信して対局を行う場合に、対局が終局した際に、各端末（囲碁ゲームプログラム）に予め付されているバージョン情報をもとにして判別される最も新しい端末において終局判定処理を行うようにする。
【０１０５】
基本的には、ゲーム端末１０（あるいは終局判定処理を含む囲碁ゲームプログラム）が新しくなる程、技術改良によって終局判定の性能が向上している場合が多いと考えられる。そして、ゲーム端末１０（囲碁ゲームプログラム）に対して付されるバージョン情報が異なる端末同士で対局した場合には、終局判定を何れか一方の端末で行い、その結果を他方の端末に通知するようにする必要がある。すなわち、バージョン情報が異なる各端末で別々に終局判定を行うと、終局判定の性能の違いから判定結果が異なってしまい、両端末間で判定結果や修正手順の整合をとることができなくなってしまうからである。
【０１０６】
第５実施形態では、対局を行う各ゲーム端末１０（囲碁ゲームプログラム）が終局判定端末判断処理を実行して、各ゲーム端末１０のバージョン情報をもとに自端末が最も新しいと判断された場合にのみ終局判定を行うようにした。これにより、新しい端末に搭載されている、性能のより優れた終局判定処理により終局判定を行うことができる。
【０１０７】
図１６には、第５実施形態における終局判定端末判断処理のフローチャートを示している。なお、ゲーム端末１０−１とゲーム端末１０−３との間で囲碁ゲーム対局が実行されるものとし、ゲーム端末１０−１において実行される終局判定端末判断処理について説明する。ゲーム端末１０−１，１０−３は、終局判定処理の実行が必要となる以前に、それぞれが終局判定端末判断処理を実行し、その結果、自端末が終局判定を実行すべきである場合に、前述した第１乃至第４実施形態を用いた終局判定処理を実行する。
【０１０８】
まず、ゲーム端末１０−１は、予め格納されている自端末のバージョン情報を読み出し（ステップＫ１）、このバージョン情報を対局相手のゲーム端末１０−３に対して送信する（ステップＫ２）。
【０１０９】
また、ゲーム端末１０−１は、対局相手のゲーム端末１０−３においても終局判定端末判断処理が実行されることでゲーム端末１０−３から送信されたバージョン情報を受信すると（ステップＫ３）、自端末のバージョン情報と対局相手のゲーム端末１０−３のバージョン情報とを比較する（ステップＫ４）。
【０１１０】
ここで、ゲーム端末１０−１は、自端末のバージョン情報の方が新しい端末（あるいは囲碁ゲームプログラム）を示す場合（ステップＫ５）、自端末を終局判定端末として設定する（ステップＫ６）。この場合、ゲーム端末１０−１は、対局の終局判定が必要な場合に、例えば前述した第１〜第４実施形態における終局判定処理を実行し、その結果をゲーム端末１０−３に対して送信する。
【０１１１】
一方、ゲーム端末１０−１は、自端末のバージョン情報の方が新しい端末（あるいは囲碁ゲームプログラム）を示していない場合（ステップＫ５）、自端末を終局判定端末ではないとして設定する（ステップＫ７）。この場合、ゲーム端末１０−１は、対局の終局判定が必要な場合に、対局相手のゲーム端末１０−３から終局判定処理の結果が送信されてくるのを待つ。
【０１１２】
このようにして、第５実施形態では、対局を行うゲーム端末１０−１，１０−３間で通信して対局を行う場合、新しい端末のより性能の優れた終局判定処理を使用して終局判定を行うことができるので、システム全体としてより優れた終局判定を行うことができる。
【０１１３】
なお、第５実施形態では、対局を行うゲーム端末１０−１，１０−３の何れかにおいて終局判定処理を実行するものとして説明しているが、終局判定処理を行う端末を対局を行っていない端末とすることもできる。例えば、ゲーム端末１０−２は、ゲーム端末１０−１，１０−３が相互に送受信している情報（着手に関する情報など）を受信することで、ゲーム端末１０−１，１０−３間の対局の様子を盤面に表示させる、すなわち利用者によって対局を観戦できるものとする。こうした対局システムの場合には、ゲーム端末１０−２も終局判定処理を行う端末の候補とすることができる。この場合、ゲーム端末１０−１，１０−２，１０−３が相互にバージョン情報を送受信し、それぞれが各端末のバージョン情報をもとにして終局判定端末判断処理を実行することによって、終局判定処理を実行する端末を設定する。これにより、対局を観戦しているゲーム端末１０−２が対局をしているゲーム端末１０−１，１０−３よりも優れた終局判定性能を有していれば、このゲーム端末１０−２を利用して精度の良い終局判定処理を実行させることができる。
【０１１４】
また、前述した第５実施形態の説明では、各端末において終局判定端末判断処理を実行するものとして説明しているが、少なくとも１つの端末において終局判定端末判断処理を実行するようにしても良い。この場合、終局判定端末判断処理を実行する端末は、処理の判断結果（終局判定端末）を他の各端末に対して通知するものとする。
【０１１５】
次に、第６実施形態について説明する。
第６実施形態は、第５実施形態と同様にして、囲碁対局サーバ３０を介さずにゲーム端末１０間で通信して対局を行う場合に、対局が終局した際に、各端末に予め格納されているバージョン情報をもとにして終局判定処理を行う端末を決める。ただし、第６実施形態では、最も新しい端末が終局判定処理を行う最も性能の良好な端末を決めて指定し、その指定された端末が終局判定処理を行う。
【０１１６】
前述した第５実施形態では、常に最も新しい端末によって終局判定処理を行うことしていたが、実際には新しい端末であっても、端末のハードウェア資源（ＣＰＵ性能やメモリ容量など）の制約によって、終局判定処理の処理性能を犠牲にして他の処理（対局処理や通信処理など）の処理時間が短縮されるように構成される場合もある。この場合、新しい端末が古い端末よりも終局判定性能が悪くなっている場合もあるため、新しい端末と性能の優れた古い端末とが対局を行った場合には、性能の優れた古い端末において終局判定処理が実行されるようにする。
【０１１７】
一般に、ゲーム端末１０（囲碁ゲームプログラム）は、一度、製造メーカーなどから出荷されて市場において流通した後では、その中身を更新することができない場合が多いため、その端末を出荷する際に、その端末を生産した時点で存在する古い端末との間で対局した場合に何れの端末において終局判定処理を実行すべきかを示す、図２（ｂ）に示すような終局判定端末判断データを不揮発性の記憶媒体（ＲＯＭ１２あるいは記憶装置２０）に予め格納して提供する。終局判定端末判断データは、図２（ｂ）に示すように、自端末のバージョン情報（自端末バージョン）と対局相手となる端末のバージョン情報（相手端末バージョン）との組合わせに対して、何れのバージョン情報の端末が終局判定端末とするかを示すデータが格納されている。なお、終局判定端末判断データにおいて設定される終局判定端末の選択基準は、端末の性能（ハードウェア資源）、終局判定処理の判定速度など、各種の条件に従って決められるものとする。
【０１１８】
第６実施形態では、最新の端末に最新の終局判定端末判断データが格納されているので、最新の端末による終局判定端末指定処理によって、終局判定処理を実行すべき端末を指定する。なお、この指定は最新の端末自身を示す場合もある。
【０１１９】
図１７には、第６実施形態における終局判定端末指定処理のフローチャートを示している。なお、ゲーム端末１０−１とゲーム端末１０−３との間で囲碁ゲーム対局が実行されるものとし、ゲーム端末１０−１において実行される終局判定端末指定処理について説明する。ゲーム端末１０−１，１０−３は、終局判定処理の実行が必要となる以前に、それぞれが終局判定端末指定処理を実行し、その結果、自端末が終局判定を実行すべきである場合に、前述した第１乃至第４実施形態を用いた終局判定処理を実行する。
【０１２０】
まず、ゲーム端末１０−１は、予め格納されている自端末のバージョン情報を読み出し（ステップＬ１）、このバージョン情報を対局相手のゲーム端末１０−３に対して送信する（ステップＬ２）。
【０１２１】
また、ゲーム端末１０−１は、対局相手のゲーム端末１０−３においても終局判定端末指定処理が実行されることでゲーム端末１０−３から送信されたバージョン情報を受信することによって（ステップＬ３）、自端末のバージョン情報と対局相手のゲーム端末１０−３のバージョン情報とを比較する（ステップＬ４）。
【０１２２】
ここで、ゲーム端末１０−１は、自端末のバージョン情報の方が新しい端末（あるいは囲碁ゲームプログラム）を示す場合（ステップＬ５）、自端末に予め格納されている終局判定端末判断データを参照して、自端末のバージョン情報（自端末バージョン）と対局相手のバージョン情報（相手端末バージョン）との組に対して、何れの端末が終局判定端末であるかを判断する（ステップＬ６）。
【０１２３】
ゲーム端末１０−１は、終局判定端末として判断した端末に対して終局判定の実行を指示する（ステップＬ７）。
【０１２４】
ここで終局判定の実行が指示された場合、すなわちゲーム端末１０−１は、自端末が終局判定端末として指示された場合には、自端末を終局判定端末として設定する（ステップＬ９）。この場合、ゲーム端末１０−１は、対局の終局判定が必要な場合に、例えば前述した第１〜第４実施形態における終局判定処理を実行し、その結果をゲーム端末１０−３に対して送信する。
【０１２５】
一方、終局判定の実行が指示されなかった場合、すなわちゲーム端末１０−１が、対局相手のゲーム端末１０−３を終局判定端末として判断して、終局判定の実行を指示した場合には、自端末を終局判定端末ではないとして設定する（ステップＬ１０）。この場合、ゲーム端末１０−１は、対局の終局判定が必要な場合に、対局相手のゲーム端末１０−３から終局判定処理の結果が送信されてくるのを待つ。
【０１２６】
このようにして、第６実施形態では、対局を行うゲーム端末１０−１，１０−３間で通信して対局を行う場合、最新の終局判定端末判断データを持つ新しい端末において終局判定処理を行う端末を指定するので、その時点で最も望ましい端末によって終局判定処理を実行させることができ、システム全体としてより優れた終局判定を行うことができる。
【０１２７】
なお、第６実施形態においても、第５実施形態と同様にして、対局を行うゲーム端末１０−１，１０−３だけではなく、対局を観戦している他のゲーム端末１０−２を含めて終局判定処理を行う端末を決めることもできる。
【０１２８】
次に、第７実施形態について説明する。
第７実施形態は、囲碁対局サーバ３０を介してゲーム端末１０間で通信することにより対局を行うシステムにおいて、その対局が終局した際に、囲碁対局サーバ３０あるいは対局しているゲーム端末１０の何れかにおいて終局判定処理を行うようにする。
【０１２９】
第７実施形態では、囲碁対局サーバ３０の処理負担の程度を表す混雑度や対局をしている各端末のバージョン情報に基づいて、終局判定端末指定処理を実行することにより終局判定処理を行う装置（サーバ／端末）を指定する。第７実施形態では、囲碁対局サーバ３０において終局判定端末指定処理を実行するものとする。
【０１３０】
一般に、囲碁対局サーバ３０の処理能力（処理速度や記憶容量等）はゲーム端末１０よりも優れているので、何らの制約もない場合には、囲碁対局サーバ３０において終局判定処理を実行した方が良好な判定結果（精度、処理速度）を得ることができる。
【０１３１】
しかし、囲碁対局サーバ３０にたくさんの顧客がアクセスして対局を行っている場合等に、囲碁対局サーバ３０に終局判定処理を実行させてしまうと、囲碁対局サーバ３０に対する処理負担が増大した状態、すなわち混雑度が高い状態にあるために、終局判定処理に長い時間が掛かってしまうおそれがある。また、終局判定処理の負担によって囲碁対局サーバ３０全体の処理速度もさらに落ちるなど、終局判定処理を待っている対局者にとっても、また他の顧客にとっても不利不便を招くおそれがある。そこで第７実施形態では、囲碁対局サーバ３０の混雑度を診断して、混雑度が一定値以上となった場合等の非常に混雑している場合には、各端末のバージョン情報を参照して最も性能の良い端末に終局判定を行うよう指示を出すようする。
【０１３２】
図１８には、第７実施形態における終局判定端末指定処理のフローチャートを示している。なお、終局判定端末指定処理を実行する囲碁対局サーバ３０には、終局判定端末判断データが予め不揮発性の記憶媒体（ＲＯＭ１２あるいは記憶装置２０）に格納されて提供されているものとする。終局判定端末判断データには、異なるバージョン情報同士の組み合わせに対して、何れのバージョン情報の端末を終局判定端末とするかについては、通常は処理能力の高い方の端末を示すデータが含まれている（図２（ｂ）参照。ただし、自端末バージョンの部分は、複数の端末についての端末バージョンが登録される）。
【０１３３】
まず、囲碁対局サーバ３０は、例えば対局を開始する前に、対局をする各端末からバージョン情報を取得しておく（ステップＭ１）。
【０１３４】
また、囲碁対局サーバ３０は、常時、他の処理の実行に伴う混雑度の診断を実行し、この診断により得た混雑度が予め設定されている一定値以上となっているか否かを判別する（ステップＭ３）。予め設定されている一定値は、囲碁対局サーバ３０の基本的な処理能力、対局処理などの他の処理に要求される処理速度などに基づいて決められた、囲碁対局サーバ３０に対してこれ以上処理負担を増大させるべきではないことを判断するための基準値である。また、囲碁対局サーバ３０の混雑度は、例えば囲碁対局サーバ３０にアクセスしている端末数（サービスを利用しているユーザ数）、現在進行中の対局数などを対象として判別しても良いし、囲碁対局サーバ３０を構成するハードウェアやＯＳなどの基本性能に対する情報を対象として判別しても良い。
【０１３５】
ここで、混雑度が一定値以上ではないと判別した場合、囲碁対局サーバ３０は、そのまま継続して対局に対する終局判定処理を実行する。
【０１３６】
一方、混雑度が一定値以上であると判別した場合、囲碁対局サーバ３０は、予め対局をしている各端末から取得しているバージョン情報をもとに、予め格納されている終局判定端末判断データを参照して終局判定処理を実行すべき端末を判別する（ステップＭ４）。すなわち、対局をしている各端末のバージョン情報の組に対して設定されている何れの端末が終局判定端末であるかを示すデータに従って、終局判定端末を決定する。
【０１３７】
囲碁対局サーバ３０は、終局判定端末として判定した端末に対して、終局判定処理の実行を指示し（ステップＭ５）、自装置での終局判定処理を終了する（ステップＭ６）。囲碁対局サーバ３０から終局判定処理の実行が指示されたゲーム端末１０は、自端末を終局判定端末として設定し、その後、終局判定処理を実行する。その端末は、終局判定処理の結果を囲碁対局サーバ３０に対して送信する。囲碁対局サーバ３０は、端末で実行された終局判定処理の結果を対局相手の端末に対して転送する。
【０１３８】
このようにして、第７実施形態では、囲碁対局サーバ３０に対して処理負担が軽い状態、すなわち混雑度が低い場合には、基本的な処理性能が高い囲碁対局サーバ３０において終局判定処理を実行し、囲碁対局サーバ３０の混雑度が高くなった場合には、囲碁対局サーバ３０で実行するより高い処理性能が確保できる端末を選択して終局判定処理を実行させることで、対局システムとしての終局判定処理についての性能を向上させ、囲碁対局サーバ３０に対する処理が過剰となって他の処理に悪影響を及ぼすことを回避することができる。
【０１３９】
なお、前述した終局判定端末指定処理の説明では、各端末のバージョン情報を取得して終局判定端末を判断しているが、例えば各端末に対してｐｉｎｇコマンドなどを送信した時の反応時間の情報、各端末に保持されているアクセスポイントの場所情報、ネットワークの混雑度やネットワーク上の距離などの情報を受け取って、終局判定処理を実行すべき端末を決定するようにしても良い。
【０１４０】
また、前述した説明では、囲碁対局サーバ３０において終局判定端末指定処理を実行するものとして説明しているが、対局を行っている端末の何れか、対局の観戦をしている他の端末、あるいは他のサーバ装置において終局判定端末指定処理を実行するようにしても良い。終局判定端末指定処理を実行する装置は、処理に必要な情報を囲碁対局サーバ３０や各端末から取得して、前述したようにフローチャートに示す処理を実行する。
【０１４１】
また、前述した説明では、囲碁対局サーバ３０の混雑度が一定以上となった場合には、対局を行っている端末において終局判定処理を実行させるものとしているが、端末に終局判定処理の実行を指示した後、囲碁対局サーバ３０の混雑度が一定値未満となった場合には、再び、囲碁対局サーバ３０が終局判定端末指定処理を実行するようにしても良い。
【０１４２】
なお、本発明は、前述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、前述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られるので有れば、この構成要件が削除された構成が発明として抽出され得る。
【０１４３】
また、前述した各実施形態において記載した処理は、コンピュータに実行させることのできる囲碁ゲームプログラムとして、例えば磁気ディスク（フロッピーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。囲碁ゲーム装置を実現するコンピュータは、記録媒体に記録された囲碁ゲームプログラムを読み込み、または通信媒体を介して囲碁ゲームプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【０１４４】
【発明の効果】
以上のように、本発明によれば、ユーザからの指示を要することなく自動的に活き石及び死に石を判定することにより、終局判定処理の正確性を高め、誤りを少なくすると共に、操作が簡単で使いやすくした囲碁ゲーム装置、囲碁ゲーム方法、及び囲碁ゲームプログラムを提供することができる。
【図面の簡単な説明】
【図１】本実施形態におけるゲーム端末１０の電子回路の構成を示すブロック図。
【図２】ゲーム端末１０に格納される棋譜（局面）データと終局判定端末判断データの一例を示す図。
【図３】第１実施形態の死活判定処理について説明するフローチャート。
【図４】第１実施形態における死活判定処理を説明するための図。
【図５】盤面における「つながっている」又は「つながっていない」場合の具体的な例を示す図。
【図６】群に属する地検出処理を説明するためのフローチャート。
【図７】第２実施形態の死活判定処理のフローチャートを示す図。
【図８】第２実施形態における死活判定処理を説明するための図。
【図９】局面変換処理を説明するための図。
【図１０】第３実施形態の死活判定処理を説明するためのフローチャート。
【図１１】第３実施形態における死活決定処理を説明するための図。
【図１２】第３実施形態における死石決定処理を説明するためのフローチャート。
【図１３】第４実施形態における死石決定処理を説明するためのフローチャート。
【図１４】第５乃至第７実施形態を適用する対局システムの構成の一例を示す図。
【図１５】囲碁対局サーバ３０の電子回路の構成を示すブロック図。
【図１６】第５実施形態における終局判定端末判断処理を説明するためのフローチャート。
【図１７】第６実施形態における終局判定端末指定処理を説明するためのフローチャート。
【図１８】第７実施形態における終局判定端末指定処理を説明するためのフローチャート。
【図１９】終局判定処理の状況の一例を示す図。
【符号の説明】
１０…ゲーム端末
１１…ＣＰＵ
１２…ＲＯＭ
１４…ＳＲＡＭ
１６…タッチパネル
１８…ＬＣＤドライバ周辺回路
１９…ＬＣＤ
２０…記憶装置
２２…通信インタフェース（Ｉ／Ｆ）
２３…スピーカ
２４…タイマ
２５…電池
３０…囲碁対局サーバ
３２…通信回路網
３４…パーソナルコンピュータ
【図１】
0004582745.tif 000002
【図２】
0004582745.tif 000003
【図３】
0004582745.tif 000004
【図４】
0004582745.tif 000005
【図５】
0004582745.tif 000006
【図６】
0004582745.tif 000007
【図７】
0004582745.tif 000008
【図８】
0004582745.tif 000009
【図９】
0004582745.tif 000010
【図１０】
0004582745.tif 000011
【図１１】
0004582745.tif 000012
【図１２】
0004582745.tif 000013
【図１３】
0004582745.tif 000014
【図１４】
0004582745.tif 000015
【図１５】
0004582745.tif 000016
【図１６】
0004582745.tif 000017
【図１７】
0004582745.tif 000018
【図１８】
0004582745.tif 000019
【図１９】
0004582745.tif 000020