19. The Go Text Protocol を
適当に和訳しました。
訳がさすがにちょっと怪しい、と思ったところは
日本語と併せて原文(英語)も併記します。
http://www.gnu.org/software/gnugo/gnugo_19.html
------------------------------------------
19.1 Go Text Protocol
19.2 GNU GoをGTPモードで起動する
19.3 GTPアプリケーション
19.4 メタマシーン
19.5 新しいGTPコマンドの追加
19.6 GTPコマンドリファレンス
------------------------------------------
19.1 Go Text Protocol
GNU Go 3.0から、Go Text Protcol, 略してGTPという新しいインターフェースを導入しました。
ASCIIインターフェースよりコンピュータ間での通信に適し、Go Modem Protocolよりシンプル・パワフル・柔軟なインターフェースを作るためです。
GTPには2つのプロトコルバージョンがあります。
バージョン1は、GNU Go 3.0と3.2で使われていました。
バージョン2は、GNU Go 3.4以降で使っています。
GTP バージョン2の仕様は、http://www.lysator.liu.se/~gunnar/gtp/ で入手できます。
GNU Go 3.4はGTPバージョン2実装のリファレンスとなりますが、
全てしかし多くの共通コマンドはこのプロトコルの独自拡張として扱うべきである。
(but all but the most common commands are to be regarded as private extensions of the protocol.)
GTPには様々な応用例があります。
GNU Goで初めに退行テスト(セクション"Regression testing"参照)に使用し、
(訳注:退行テスト:GNU Goのソースコードを修正した際に、既存の動作がきちんと変化無く行なえるかをテストすること。)
続いてNNGSサーバに接続して自分自身や別のプログラムと自動対局するテストに使用しました。
(訳注:NNGS:インターネット囲碁サーバを構築するモジュール(http://sourceforge.jp/projects/sfnet_nngs/)。及びそれを使用したサーバ(現在は消滅:http://nngs.cosmic.org/))
現在ではNNGSや他のネット碁サーバのほかに、GTPに対応した多くのグラフィカルユーザーインターフェースが存在します。
------------------------------------------
19.2 GNU GoをGTPモードで起動する
GNU GoをGTPモードで起動するには、gnugoを単に'--mode gtp'オプションを付けて起動してください。
するとプロンプトや他の出力は表示されませんが、GNU Goは静かにGTPコマンドを待っています。
GTPセッションの例は、こんな感じに見えます。
virihaure 462% ./gnugo --mode gtp
1 boardsize 7
=1
2 clear_board
=2
3 play black D5
=3
4 genmove white
=4 C3
5 play black C3
?5 illegal move
6 play black E3
=6
7 showboard
=7
A B C D E F G
7 . . . . . . . 7
6 . . . . . . . 6
5 . . + X + . . 5
4 . . . + . . . 4
3 . . O . X . . 3
2 . . . . . . . 2 WHITE (O) has captured 0 stones
1 . . . . . . . 1 BLACK (X) has captured 0 stones
A B C D E F G
8 quit
=8
コマンドは1行で与えられ、また先頭に任意で識別番号を付け、続いてコマンド名と引数を指定します。
(識別番号はオプション。)
コマンドが正常に実行された場合、イコール記号('=')から始まる応答が返ります。
続いてコマンド識別番号(識別番号が指定された場合のみ)、その次に結果が続きます。
上記例では、識別番号4, 7以外は空文字の結果が返ってきています。
識別番号4のコマンドの結果は、白がC3に着手するという回答です。
識別番号7のコマンドの結果は、現在の盤面配置です。
応答は、2つの連続した改行で終了します。
コマンドが失敗した場合、識別番号5のように、イコール記号の代わりに疑問符('?')で始まる応答が返ります。
このプロトコルの詳細な仕様は http://www.lysator.liu.se/~gunnar/gtp/ にあります。
GNU Goで利用可能なコマンドは list_commands コマンドで一覧できます。
またこのドキュメントのセクション19.6 "GTPコマンドリファレンス"にも記載されています。
------------------------------------------
19.3 GTPアプリケーション
(訳注:この章はとってもざっくりな概要のみでしか訳してません。)
GTPは「コントローラー」と「エンジン」による、非対称のプロトコルだよ。
・コントローラー:GTPコマンドを送信する
・エンジン:GTPコマンドに応答する
GNU Go本体はエンジン側を実装してるよ。
GNU Goソースコードの中にはコントローラー側を実装したいくつかのアプリケーションが入っているよ。
・退行テストを実行するコントローラー (regress.*)
・2つのエンジンを対戦させるコントローラー (twogtp.*)
とか。
------------------------------------------
19.4 メタマシーン
(訳注:この章はとってもざっくりな概要のみでしか訳してません。)
あるプロセスが、GTPの応答を「お告げ」として受け取り、
複数のお告げの内容を元に、最終的な着手を決定する、って感じの試みがあるよ。(メタマシーン)
その実装が、GNU Goと一緒に配布されているらしい。
------------------------------------------
19.5 新しいGTPコマンドの追加
(訳注:この章はとってもざっくりな概要のみでしか訳してません。)
GNU GoでのGTPの実装は、'interface/gtp.h', 'interface/gtp.c', 'interface/play_gtp.c'でやってるよ。
前2つはヘルパー関数の宣言と定義。実際のGTPコマンドは 'play_gtp.c' でやってます。
どんな感じで実装するかは、既に実装されているコマンドのコードを見てね。
(gtp_countlib()を例にした解説がドキュメント原文にあります。)
------------------------------------------
19.6 GTPコマンドリファレンス
このセクションではGNU Goで実装しているコマンドと、コマンドに関する情報を一覧します。
各コマンドに対して、次の項目があります。
・機能:
コマンドが行なうこと
・引数:
そのコマンドが必要とする追加情報(必要なら)。
(訳注:複数の引数はスペースで区切って指定します。)
・不要 (none)
・座標 (vertex)
・整数 (integer)
・色 (訳注:"black" or "white")
・その他
・エラー:
このコマンドが失敗する原因となる状況
(訳注:エラー時の応答文字列を表している訳ではありません。)
・戻値:
コマンドの応答として何が返されるか。
(応答のヘッダ('=')とフッタ(2つの改行)の間にある情報の内容)
・なし (nothing)
・座標 (a move coordinate)
・文字列 (some status string)
・色 (訳注:"black" or "white")
・その他
・ステータス:
標準のGTPバージョン2コマンドとの対応。
記載が無いコマンドは、GNU Go独自拡張コマンドです。
(訳注:座標は、横方向を左からA〜T(ただしIを除く)、縦方向を下から1〜19(19路盤の場合)で表した文字列です。
例:左下隅星: D4 右上隅星: Q16)
(訳注:
GTP バージョン2の仕様(http://www.lysator.liu.se/~gunnar/gtp/)とコマンド有無の対応比較しました。
相違は1点のみ。
GTPで定義されているlist_commandsコマンドがhelpコマンドに置き換わっています。
(しかしGNU Go 3.8の動作ではhelpだけでなく, list_commandsコマンドも同様に動作する)
それ以外は一致していました。(GTP v2で定義されたコマンドがGNU Goに実装されている。))
では以下に大きなリストを示します。(順不同です。)
※新しいコマンドを追加した場合は、このリストは不完全になります。
(訳注:そりゃそうだろう。原文にはその際のドキュメント変更についても少し記載している。)
訳注:
以下はGNU Go 3.8の動作に合わせて補足や強引な意訳などを行なっています。
連について、原文では"string"(直接的な結合を持つ群)と"dragon"(間接的な結合(タケフなど)を持つ群)と区別しています。
日本語ではこの2つを区別する用語は無いですが、一応区別を残したまま訳すため、
便宜的に、string="連"、dragon="漣"と訳します。(無理矢理...大杉さんすみません。)
quit
プログラムを終了する
引数:
protocol_version
プロトコルバージョンを取得する
name
プログラム名を取得する
version
プログラムのバージョン番号の取得
boardsize
使用する盤の路数の設定・盤面をクリアする
query_boardsize
現在の路数設定を取得する
clear_board
盤面をクリアする
orientation
orientationの値を設定し、盤面をクリアする
(Set the orienation to N and clear the board)
盤面座標軸方向が回転するわけでもないよう。
query_orientation
現在のorientation設定を取得する
komi
コミを設定する
get_komi
コミを取得する
black
黒石を指定した座標に着手する
不正な着手
playwhite
白石を指定した座標に着手する
不正な着手
play
指定した色を指定した座標に着手する
座標
不正な着手
fixed_handicap
固定位置に置石を配置する
GNU Go 3.8では9子を超える置石(星目風鈴など)には対応していないようである。
place_free_handicap
置石を置く場所を考慮して置石を配置する
置石を置く場所はGNU Goが考える。
実行する度その場所は変わる。
set_free_handicap
指定した自由位置に置石を配置する
不正な座標リスト
get_handicap
置石数を取得する
loadsgf
SGFファイルを読み込み、石を配置する
(オプションで、指定した[手数/座標(への初めの着手)]の直前までの着手を配置する)
[手数]
[座標]
SGFファイルの解析失敗
color
指定した座標にある石の色を取得する
list_stones
指定した色が配置されている座標リストを取得する
countlib
指定した座標にある連の呼吸点の数を取得する
座標に石が無い
findlib
指定した座標にある連の呼吸点の座標リストを取得する
座標に石が無い
accuratelib
指定した色を指定した座標に着手した場合の、連の呼吸点の数を取得する
座標
不正な座標
accurate_approxlib
指定した色を指定した座標に着手した場合の、連の呼吸点の数を取得する
座標
不正な座標
is_legal
指定した色の指定した座標への着手が合法かを判定する
座標
不正な座標
非合法なら 0
all_legal
指定した色の全ての合法手の座標リストを取得する
captures
指定した色が捕獲したアゲハマの数を取得する
last_move
最後の着手を取得する
・直前に着手した座標
move_history
着手履歴を逆順(初手が最後)で出力する
(1手を1行で表し、1手分は色 座標。)
invariant_hash
回転・左右対称を考慮した不変の盤面ハッシュ値を取得する
invariant_hash_for_moves
指定した色が可能な全ての合法手によって得られる、回転・左右対称を考慮した不変の盤面ハッシュ値を取得する
(1行に1つの合法手座標とハッシュ値)
trymove
指定した色を指定した座標に試しに着手する
座標
不正な座標
不正な着手
tryko
不正なコウ取りを許容して、指定した色を指定した座標に試しに着手する
座標
不正な座標
不正な着手
popgo
trymove, trykoコマンドによる試し着手を1手分元に戻す
clear_cache
キャッシュをクリアする
attack
指定した座標にある連に攻撃を試みる
座標に石が無い
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標
attack_either
指定した2つの連に攻撃を試みる
連2の座標
座標に石が無い
(攻撃コードが0でなければ、指定した連のどちらかへの攻撃手があることを保証するが、攻撃手の座標は返さない。)
defend
指定した座標にある連の防御を試みる
座標に石が無い
防御手有り:
・防御コード(1〜)
・防御手の座標
does_attack
指定した座標への着手が指定した連への攻撃かどうか判断する
漣の座標
座標に石が無い
does_defend
指定した座標への着手が指定した連の防御かどうか判断する
漣の座標
座標に石が無い
ladder_attack
指定した座標にある連に厳格なシチョウでの攻撃を試みる
座標に石が無い
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標
increase_depths
思考ルーチンの読みの深さを1レベル増やす
decrease_depths
思考ルーチンの読みの深さを1レベル減らす
owl_attack
OWLを使用して、指定した座標にある漣に攻撃を試みる
座標に石が無い
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標
owl_defend
OWLを使用して、指定した座標にある漣の防御を試みる
座標に石が無い
防御手有り:
・防御コード(1〜)
・防御手の座標
owl_threaten_attack
OWLを使用して、指定した座標にある漣に2手での攻撃を試みる
座標に石が無い
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標1
・攻撃手の座標2
owl_threaten_defense
OWLを使用して、指定した座標にある漣の2手での防御を試みる
座標に石が無い
防御手有り:
・防御コード(1〜)
・防御手の座標1
・防御手の座標2
owl_does_attack
OWLを使用して、指定した座標への着手が指定した漣への攻撃かどうか判断する
漣の座標
座標に石が無い
owl_does_defend
OWLを使用して、指定した座標への着手が指定した漣の防御かどうか判断する
漣の座標
座標に石が無い
owl_connection_defends
OWLを使用して、指定した座標への着手が指定した2つの漣を接続しての防御かどうか判断する
漣1の座標
漣2の座標
座標に石が無い
defend_both
指定した2つの連の防御を試みる
連2の座標
座標に石が無い
(防御コードが0でなければ、指定した連の両方の防御手があることを保証するが、防御手の座標は返さない。)
owl_substantial
OWLを使用して、指定した連を除去した場合に、漣が活きられるかどうか判定する
(Determine whether capturing a string gives a living dragon)
座標に石が無い
それ以外: 0
analyze_semeai
攻め合いを分析する
(指定した2つの漣の攻撃・防御を試みる)
漣2の座標
座標に石が無い
攻撃コード
攻撃・防御手の座標
analyze_semeai_after_move
指定した座標への着手の後の攻め合いを分析する
着手の座標
漣1の座標
漣2の座標
・攻撃コード
・攻撃・防御手の座標
tactical_analyze_semeai
OWLを使用せずに、攻め合いを分析する
漣2の座標
座標に石が無い
・攻撃コード
・攻撃・防御手の座標
connect
指定した2つの連の接続を試みる
連2の座標
座標に石が無い
2つの連の色が違う
接続手有り:
・接続コード
・接続手の座標
disconnect
指定した2つの連の切断を試みる
連2の座標
座標に石が無い
2つの連の色が違う
切断手有り:
・切断コード
・切断手の座標
break_in
指定した連から、指定した領域への侵入を試みる
領域の座標
連の座標に石が無い
侵入手有り:
・侵入コード
・侵入手の座標
block_off
指定した連から、指定した領域への侵入のブロックを試みる
領域の座標
連の座標に石が無い
防御手有り:
・防御コード
・防御手の座標
eval_eye
指定した領域の眼形スペースを評価する
・最小の眼の数
・最大の眼の数
・(最小≠最大の場合)[眼の数を減らす攻撃手の座標]
・(最小≠最大の場合)[眼の数を減らさない防御手の座標]
眼を形成しない場合・どちらかの色に属さない: -1
dragon_status
漣の状態を判定する
[座標に石が無い]
(活き:"alive"
瀕死:"critical"
死に:"dead"
不明:"unknown")
・(瀕死の場合)[攻撃手の座標]
・(瀕死の場合)[防御手の座標]
※座標指定が無い場合、全ての漣の状態が1行1連の"A4: alive"のような形式で返される
(FIXME:セキ活きと単独活きを区別すべき。コウを識別すべき。)
same_dragon
指定した2つの石が同じ漣に属するか判定する
石2の座標
座標に石が無い
それ以外: 0
unconditional_status
指定した座標の無条件の状態を判定する
(未定:"undecided"
活き:"alive"
死に:"dead"
白の確定地:"white_territory"
黒の確定地:"black_territory"
(石のある座標:未定,活き,死にのいずれか
石のない座標:未定,白の確定地,黒の確定地のいずれか))
combination_attack
指定した色が連携攻撃によって石を取れる着手を取得する
・座標
連携攻撃手無し: PASS
combination_defend
色が連携攻撃によって石を取れる場合、他方の色がその連携攻撃を防御する着手を取得する
・座標
連携防御手無し: PASS
aa_confirm_safety
atari_atari_confirm_safety()関数を実行する
[整数]
genmove_black
黒の最良手を生成し着手する
・座標
最良手無し: PASS
genmove_white
白の最良手を生成し着手する
・座標
最良手無し: PASS
genmove
指定した色の最良手を生成し着手する
・座標
最良手無し: PASS
投了: resign (resignation_allowedが指定されている場合)
reg_genmove
指定した色の最良手を生成する
・座標
最良手無し: PASS
gg_genmove
指定した色の最良手を生成する
[乱数シード]
・座標
最良手無し: PASS
restricted_genmove
指定した色の最良手を、指定した許可座標から選択して生成する
許可座標リスト
不正な座標
座標リスト無し
・座標
最良手無し: PASS
kgs-genmove_cleanup
指定した色の最良手を生成し着手する
(敵の全ての死石が無くなるまでパスしない)
・座標
最良手無し: PASS
(類似のコマンドがGTPバージョン3で追加されるかも知れない)
level
着手レベルを設定する
undo
着手を1手戻す
gg-undo
指定した手数分着手を戻す
time_settings
持ち時間を設定する
整数(秒読時間)
整数(秒読回数)
time_left
残り時間を報告する
残り時間
残り秒読回数
(ネット碁サーバとの通信用コマンド?)
final_score
終局した対局のスコアを計算する
乱数シードがどう使われるか不明
final_status
終局した対局の指定した座標の最終状態を取得する
[乱数シード]
(活き:"alive"
死に:"dead"
セキ:"seki"
白の確定地:"white_territory"
黒の確定地:"black_territory"
ダメ:"dame")
final_status_list
終局した対局で特定の最終状態の座標リストを取得する
(活き:"alive"
死に:"dead"
セキ:"seki"
白の確定地:"white_territory"
黒の確定地:"black_territory"
ダメ:"dame")
[乱数シード]
不正な状態文字列
("alive","dead","seki"の場合、空でない座標が連ごとに改行される)
(ただし"dame", "white_territory", "black_territory"の指定はGNU Go 独自拡張)
estimate_score
スコアを推定する
B+23.8 (upper bound: -11.9, lower: -35.7)
のような形式で返される
experimental_score
次がどちらの手番かを考慮して、スコアを推定する
(次の手番の着手を生成して、その手の価値を加えるので、瀕死の漣の価値が考慮される)
reset_life_node_counter
life nodeの数をリセットする
(このコマンドは廃止され、後方互換のためだけに残されている。)
get_life_node_counter
life nodeの数を取得する
(このコマンドは廃止され、後方互換のためだけに残されている。)
reset_owl_node_counter
owl nodeの数をリセットする
get_owl_node_counter
owl nodeの数を取得する
reset_reading_node_counter
reading nodeの数をリセットする
get_reading_node_counter
reading nodeの数を取得する
reset_trymove_counter
trymoves / tryko の数をリセットする
get_trymove_counter
trymoves / tryko の数を取得する
reset_connection_node_counter
connection nodeの数をリセットする
get_connection_node_counter
connection nodeの数を取得する
test_eyeshape
矛盾評価のために眼形をテストする
(Test an eyeshape for inconsistent evaluations)
D2 alive, but almost filled with nakade:
しかし多くの座標で結果が何も返ってこないことが多い。
しかも自分のwin7コマンドプロンプト環境ではレポート出力後、'cygwin': unknown terminal type. などと出力されそのままgnugoが終了する。
analyze_eyegraph
眼形(eye graph)の眼値(eyevalue)と急所を計算する
解析失敗
・急所
引数なしでも、座標値を与えても、"0000"が帰ってくるのみ。(test_eyeshapeでレポートが返ってくる座標を与えても同様。)
このコマンド実行後、盤面が破壊される(盤面の一部を除いて、同色の石が配置される)
cputime
CPU経過時間を秒で取得する
showboard
現在の盤面配置を標準出力(stdout)に出力する
dump_stack
スタックダンプを標準エラー出力(stderror)に出力する
initial_influence
勢力等の情報を取得する
情報種別
(白の勢力:"white_influence" (小数)
黒の勢力:"black_influence" (小数)
白の強さ:"white_strength" (小数)
黒の強さ:"black_strength" (小数)
白の減衰:"white_attenuation" (小数)
黒の減衰:"black_attenuation" (小数)
白の透過性:"white_permeability" (小数)
黒の透過性:"black_permeability" (小数)
領域の値:"territory_value" (小数)
勢力範囲:"influence_regions" (整数)
非領域:"non_territory" (整数))
0.51 1.34 3.20 6.60 9.09 8.06 1.96 0.00 0.00
0.45 1.65 4.92 12.19 17.47 15.92 4.03 0.00 0.00
.
.
.
0.00 0.00 0.00 0.00 0.00 100.00 75.53 41.47 23.41
勢力範囲情報(influence_regions)のコードの意味は以下。
4 白石
3 白の領域
2 白の模様
1 白の範囲
0 中立
-1 黒の範囲
-2 黒の模様
-3 黒の領域
-4 黒石
influence:勢力
attenuation:減衰
non_territory情報の戻り値のコード(0〜3)の意味が不明。それ以外の情報も値の意味付けが不明なものが多い。
move_influence
指定した座標に着手した後の、勢力等の情報を取得する
座標
情報種別(※initial_influenceコマンドと同様)
move_probabilities
着手可能性一覧を取得する(可能性0でないもの)
(この前にgenmoveコマンドが発行されていない場合、このコマンドの結果は意味の無いものである。)
・可能性
(着手ごとに1行)
C17 0.2501
D17 0.2500
C4 0.2500
C3 0.2499
move_uncertainty
着手の不確定性のビット数を取得する
(この前にgenmoveコマンドが発行されていない場合、このコマンドの結果は意味の無いものである。)
followup_influence
フォローアップする勢力等の情報を取得する
座標
情報種別(※initial_influenceコマンドと同様)
worm_data
連の情報を取得する
A19:
color black
size 10
effective_size 17.83
origin A19
liberties 8
liberties2 15
liberties3 10
liberties4 8
attack PASS
attack_code 0
lunch B19
defend PASS
defend_code 0
cutstone 2
cutstone2 0
genus 0
inessential 0
B19:
color white
.
.
.
inessential 0
C19:
...
座標が指定された場合は、1つの連の情報のみが返される。
worm_stones
指定した連の石リストを取得する
座標に石が無い
worm_cutstone
指定した連のcutstoneの数を取得する
座標に石が無い
他の連との断点の数ではなさそう。
dragon_data
漣の情報を取得する
dragon_stones
指定した漣の石リストを取得する
座標に石が無い
eye_data
指定した座標の眼情報を取得する
座標
origin E4
color white
esize 20
msize 0
value 2222
marginal 0
neighbors 3
marginal_neighbors 0
half_eye_data
指定した座標の半眼情報を取得する
value 5.00
type FALSE_EYE
num_attacks 3
attack_point[0] G5
attack_point[1] G7
attack_point[2] J5
num_defenses 3
defense_point[0] G5
defense_point[1] G7
defense_point[2] J5
半眼で無い場合、
value 10.00
type 0
num_attacks 0
num_defenses
などとなる。(項目数可変。)
start_sgftrace
読みで実行した着手のSGFツリーのメモリへの格納を開始する
(警告:このコマンドを使おうとする場合、何をしようとしているか理解したほうがよい。)
実際、互先から5手だけgenmoveした結果は膨大な着手とコメントが記載された5.8MBのSGFファイルとなった。
finish_sgftrace
着手のSGFツリーのメモリへの格納を終了し、ファイルに書き出す
(警告:このコマンドを使おうとする場合、何をしようとしているか理解したほうがよい。)
printsgf
現在の盤面配置を指定したファイル名の静的なSGFファイルに書き出す
(ファイル名指定無し or "-"の場合は標準出力に出力する)
ファイル名指定無
・SGFデータ
tune_move_ordering
攻め合いの読みにおける着手の順序に関するパラメータ(MOVE_ORDERING_PARAMETERS)を調整する
echo
指定された文字列を出力する
echo_err
指定された文字列を標準出力(stdout)と標準エラー出力(stderr)に出力する
help
利用可能な全てのコマンドのリストを取得する
(コマンドごとに1行)
ドキュメントに記載は無いが、GNUGo3.8ではlist_commandsコマンドも動作するようである。
known_command
指定したコマンドが利用可能か調査する
コマンドが存在しない : "false"
report_uncertainty
owl_attack・owl_defendからの不確定性レポートのon/offを切り替える
get_random_seed
乱数シードを取得する
set_random_seed
乱数シードを指定する
advance_random_seed
指定したゲーム数分、乱数シードを進める
is_surrounded
指定した漣が包囲されているか判定する
座標に石が無い
弱く包囲されている : 2
包囲されていない : 0
does_surround
指定した座標への着手が指定した漣を包囲するか判定する
漣の座標
漣の座標に石が無い
着手の座標が空でない
包囲する着手でない : 0
surround_map
指定した漣の包囲マップの値を取得する
マップ値を取得する座標
漣の座標に石が無い
・指定した座標の包囲マップの値
漣が包囲されていない : -1
set_search_diamond
探索を制限し、探索ダイヤモンドを設立する
(limit search, and establish a search diamond)
reset_search_mask
盤面上の全ての探索制限を解除する
limit_search
グローバル変数 limit_searchの値をセットする
set_search_limit
指定した座標を探索制限の対象とする
draw_search_area
探索領域を取得する(標準エラー出力(stderr)に出力する)
訳注:ここにExcelファイル置いておきますね。
-----------------------
てかGTPとか大分前からあるのに、和訳が無いのが不思議だ。
みんな普通に英文ですらっと理解できるからってことなのか?
将棋の次はコンピュータ囲碁が来るで。
こんな怪しいブログの和訳でよろしければど〜ぞ。
Special thanks to
マツナガ's 囲碁コーナー 記事:囲碁の英語
英単語が対応する囲碁用語を確認させていただきました。
(ladder = シチョウ とか)
http://homepage1.nifty.com/maznaga/IGO/mag/mag060123.htm