詰碁アドバイザー ver 1.1
目的:
詰碁が解けない時の相談を受け付けます。面積の小さいのものは難しくても解いてくれますが、
広いものは解けないので、何手か打って変化のある場所を狭くしてから相談します。
石を置く可能性の有るポイントの最大数は15で詰碁の半分以上は解けます(純正一合升がちょうど15です)。
いったん解に到達すると全ての場合に対する答えを対話的に返します。すべて自動化すると処理時間が
10倍以上違ってくる場合がありますので、ユーザーの適切な設定を期待しています (以下のf,m,y,z)。
サンプルを見て10回も試せば慣れるでしょう。
ルール:
黒は常に攻撃、白は常に防御します。このバージョンではセキは生き、曲り四目/長生はコウと判定されます。
曲り四目は日本ルールでは死と置き換えて解釈してください。また同じ生きなら最初に見つかったものが答え
となり、より得な生きとかまでは探しません。
使い方: f,m などはキー、+はマウスによる位置指定です。
盤面を設定します
- (Applet版:マウスの左ボタンでアプレットのグラフィック上をおまじないクリックします。)
- w -> + 、+、.... で白石をセットします。
b -> +、+、.......で黒石をセットします。
- f -> +、+、.......で黒先であれ白先であれ初手として可能性の
あるポイントを1つ以上セットします。
- m -> +、+、......で以下の2種類を除くポイントをセットします。
- y -> +、+、......で白が1線をはねうるポイントを
セットします。
- z -> +、+、......で黒が外からダメをつめるポイントを
セットします。
- x -> +...............で白石の中で一番要な石 (これがアゲられたら
終わり) をセットします(複数可)。
実行します
up-arrow key で黒先の攻撃か、 down-arrow key で白先の防御を開始します。結果が下の
メッセージ行に表示されます。
- life = 生き (セキも現バージョンでは単なる生きです)
- death = 死
- koh = コウ (隅の曲り四目/長生も現バージョンではコウです)
結果を検証します
- 答えが life なら a でアタック してみます。
- death なら dでディフェンドしてみます。
- koh なら a,d どちらでも試せます。
- 別の場合を確かめるには、 rでそのゲームの初期状態に戻してから, a
または dで再確認します。
- 1手目は必ず fのポイントからスタートします。f,m,y,z以外の所に石を置いては
いけません。また y,zの所に早い時期に無意味に打ってはいけません。
注)
- 上記のf,m,y,zが良く分からない人は yを指定するは必要ありませんが、最低守らな
ければならないことは、(1)すでに石のあるポイントで後で着手の可能性のあるところは必ず m、
(2)単なる外ダメ(黒が最終的に白を打ち上げる時だけ意味のあるポイント)は必ず zにすること
で、あとは fで結構です。ただし最悪の場合は答が返ってくるのが10以上遅くなります。
- 次に新しい詰碁を開始する場合は nを押します。
- 検証時に他のパスも試したい時は r(Refresh)を押せば盤上の黒白の配置は初期化されます。
- f,m,y,zの設定をやり直す場合は最初の fで
f,m,y,zは初期化されます。画面上に f,m,y,
zが残っていて目障りな時は pを押せば消えます。
- f,m,y,zで指定できる最大数は合計で15です。既に石のある
ところもアゲられた後でまた打たれる可能性があるならセット (普通は m) が必要です。
- 読みに最大深さをもうけており、その先に正解のある確率がかなり低いと想定しています。そのせ
いもあって答えが必ずしも正しくないことがまれにありますので、そこを理解してご利用下さい。
- アルゴリズムはシラミつぶしと等価な答えを約1000倍高速に計算できるものを開発して埋め込んで
あります。
- VC++版はApplet版の5倍高速に動き、キーボード以外にメニューも使えますし、11種の盤面をファ
イルにsave できます。0から1の数字キーを押してからメニューで Save / Restore を選択することで
moves0.txt - moves9.txt に読み書きできます。何も数字キーを押さないと movesx.txt になります。
- VC++版の導入は Windows/System の下に MFC42.DLL と MSVCRT.DLL が必要です。
環境) いくつかの組み合わせでテストしてみました。下記の 1,2,3 では正しく動きました。ただし
APPLET版のテストです。
- JDK1.1.1(TRLのJIT)+Warp4: 最も速かった。MSIEの1.3倍高速。
- MSIE3/4+Win95:まともに動作。
- NetScape3.01+Win95:まともに動作、MSIEより2.5倍低速。
- NetScape2.02+Warp4:極端に簡単な問題だけ解けた。
- NetScape3.01+AIX:間違った答えを返す。
- NetScape3.0+Win95:動作せず。
- NetScape4.0+Win95:動作せず。
- NetScape4.0+AIX:動作せず。
- NetScape4.0+Mac:動作せず。
サンプル: セット後
近い将来の改良予定は、zを限定の15から除く(f+m+y+zを15から
16に増やす)ことです。さらに16より増やすには、それに伴いスピードが遅くなるのをパターン認識でカバー
し実用的なリスポンス時間を保つことです。