2016年09月13日

同人誌:囲碁を楽しむ本 stroll (いなきた鉄道)

囲碁×女の子×コミケ。
この組合せを実現している希少な同人誌の存在は2年程前より知っていました。
しかしごく最近、その発行者さん(いなきた鉄道さん)は
6年半前(同人誌発行前)に当ブログのこの記事内で言及・トラックバックさせていただき、コメントいただいた方だと気付き
運命めいた衝撃を受けています。

ということで購入しました。
(通販サイト COMIC ZIN様にて購入できます。⇒サークルページ
stroll.JPG

表紙は各号、可愛い女の子×囲碁なイラストで、
かつ囲碁要素も、囲碁界隈をよく知った人でないと描けない要素がフィーチャーされています。
(Vol.1 ハートの詰碁(向井梢恵プロのウェディングケーキ)
 Vol.2 囲碁未来(文字は「囲碁教室」って書いてあるけれど)
 Vol.3 GO Ark (http://goark.jp/ ))

内容も多種多様で、
私が購入できたVol.3, 4だけでも、
・囲碁カフェや囲碁イベントなどの紹介と体験レポート
・宇城はやひろさん(代表作:みことの一手!など)や加藤文枝さん(代表作:いしのおと など)による、
 書き下ろし囲碁漫画作品
"囲碁界の悪女"こと稲葉禄子さんを初めとするゲスト寄稿
・対局時計や免状などの囲碁アイテム紹介
・囲碁を織り交ぜた、青春フラグ系小説(Vol.3) (個人的には、この続きが(現在進行形でも)読みたいです。)
と盛り沢山。

更にVol.1, 2(完売のようです通販で販売停止のものは、発行者様個別対応とのことです)では、
・声優ささきのぞみさんと下坂美織二段のレッスン&対談
・特集「2桁級の囲碁の楽しみ方」
と、とても魅力的な内容があるようです。


内容がとても作り込まれていて読み応えがあります。
発行にはかなりの労力が掛かっていると思います。

特にすごいと思っている点が2つあります。

一つは、執筆陣の豪華さ
かなり有名な方々が執筆に加わっています。
(ささきのぞみさん、意外と自分アニメ見てないので分からなかったのですが、
 ジュエルペットのサフィー役と聞き驚きました。娘がサフィー大好きなのです。)
他者に作業を依頼するのは、たとえ相手が家族や同僚であっても
とても労力の要る・神経を使うことでありますが、
多方面の著名人に依頼し、それを纏め上げ形にするのはとても大変な事だと思います。

もう一つは、身体を使って執筆していること。
囲碁カフェめぐりも、囲碁イベントレポートも、
執筆者自身が実際に出向き、リアルに体験し、執筆しています。
同人誌は、リアルなものなのかも知れません。
対局時計なども、実際のハードウェアとしてリアルな物です。
ネットから碁に触れ始めた層には、このリアルとの架け橋になる情報は
ネットからは得難い、新しい一歩が開ける興味深い情報であると思います。
(自分も、無性に対局時計が欲しくなりました。)

stroll = 散歩。
囲碁の風を感じながら自分の足で歩くための手引きをしてくれる、
とても良い囲碁情報誌と思います。


このバイタリティ・行動力の強さに敬服します。
自分も、キーボード打ってるだけでなく、もっと頑張らないと!と思えました!


追記(2016/9/27)

その後、発行者さんと直接やりとりして、
通販サイトで購入できなかったVol.1, 2を入手できました!
stroll2.JPG

Vol.1, 2は、囲碁イベント参加記の他に
多くのボリュームを持っているのが、
声優 ささきのぞみさん・長島瑞枝さんと、
下坂さん・稲葉さんとの囲碁体験記 & Girl's Talkです。

これがかなり読み応えがあります。
囲碁の話抜きでも興味深いトーク内容だと思います。
囲碁と、声優・演劇の世界、一見共通点は無さそうですが、
答えが無く、それゆえその人独自の価値観を出さないと存在できない、
実力主義のシビアな世界に生きる表現者として
驚くほど共通することがあるのです。
(人柄が如実に反映されるところなど。)
これ読んでると、全く別の世界ですが演劇の世界にも興味が沸く、
とても良い対談だと思いました。

また、囲碁カフェや若者向け囲碁サークルの紹介も
やはり創刊号から充実しています。
一貫しているのが、紹介される囲碁スペースが、
従前の囲碁囲碁した雰囲気じゃなく
お洒落なカフェやバー・サークルの雰囲気で、
普通に行きたくなります。
(Vol.2のマンガの落ちにもなっています。)
囲碁はおまけくらいのさり気なさがあり、
このスタンスが普及には大切なんじゃないかと思います。
(まず、居心地良いところにしないと、定着しないでしょうから。)
posted by curren at 00:56| Comment(5) | TrackBack(0) | 日記 - 囲碁 | このブログの読者になる | 更新情報をチェックする

2016年09月01日

囲碁クエスト所感

♪ぱーぱーぱーぱーぱーぱー ぱぱイゴクエストゥッ...
というウィスパー気味なボイスが耳から離れません。(The Theme Of IGOQUEST)

ということで、非常に遅ればせながら、
囲碁クエストやっとレート確定するまで打ったので
感想など記したいと思います。

まずタイトル「囲碁"クエスト"」について。
"クエスト"言うからには、某有名ドラゴン探しRPGのイメージで
マップ上歩くとモンスター出てきて、囲碁でバトルして、
勝つと経験値たまってレベルアップしたり、得たゴールドで装備・アイテムを買って有利に進行する、
という感じのゲーミフィケーションされたものかと思ったのですが、
ソリッドな囲碁対局アプリで逆に少し意表を突かれました。
しかし、questの本来の意味 = 追求・探求 であり、
数多くの対局を通して囲碁の真理を探求すると考えると納得です。
実は非常にRPG的なゲームなのかもと思います。

アプリの概要・特徴については、この記事お読みの方の多くはご存知かと思います。
・9路・13路のネット対人囲碁対局スマホアプリ(ブラウザ版もあり)
  ⇒対局時間が短く済み、気軽に空き時間にプレイできる
・Eloレーティングシステム
  ⇒棋力が数値化され、励みになる。(仕組み上時価だが)碁会所段級位より遥かに信頼性があり標準的な棋力単位となる
・プロ棋士や著名人もプレイし、NHK囲碁フォーカスでも紹介されるほどの知名度
  ⇒アクティブユーザーが非常に多い

囲碁クエストのヒットの要因は、「コンパクト」「シンプル」化にあると考えています。
路数を9・13路のみにする・持ち時間切れ負け制(早碁に属するもの)による対局時間のコンパクト化は、
忙しい現代人でも遊ぶことを可能にしています。
終局同意排除(完全自動判定)・チャット排除は、
無用な対人トラブルによる決定的なネガティブ感情を生まず、継続意欲を削ぎません。
(それに、人が集まりチャットが出来るサイトは出会い系化のリスクがありますので...。)

主観的に、今までの他の対局場と異なると一番感じたところは、
入門者・初心者がいっぱいいるということです。
幽玄の間・KGS・東洋囲碁などでは私程度の棋力の人間はほとんどおらず、
非常に肩身が狭く蹂躙される日々を送り、嫌、というか恥ずかしくて対局場を後にした過去がありますが、
囲碁クエストは話題になっていることで人が人を呼ぶ好循環が発生し、
新規ユーザーも常に増えているためと思います。

なお、私のレーティング(13路)は以下です。(ブラウザ版でのキャプチャ)
goquest_rate.PNG
こんな私も、棋書を10冊以上読むくらい勉強しておりました。
この辺りやもう少し下のレーティングでも、数千局打っている方がザラにいらっしゃいます。
(7000局位打っている方がいました。
 囲碁クエスト13路開始から2年間毎日欠かさず10局打っているペースです。)
今までこういう人も初心者扱いだったり、あるいは初心者とも扱われないことが多かったです。
(普及・標準化を目指すある組織のサイトで、レーティング1300以下は標準化検討対象外だったりする。
 あと、段位者の常連が集う碁会所で、対戦相手がいないよって追い返されるのは偶に聞く話です。)
棋書10冊以上読んでも、数千局打っても、初心者にもなれないのってどんだけ敷居が高いんだよと。
囲碁クエストではレート1200以上で青文字として少し上のランク扱いとなるのが嬉しかったりします。
Go-Up.onlineのレベル呼称はこの考えに基づいています
 上級(囲碁クエレート1000くらい???)以上の方が規格外、どうかしてるレベル(褒め言葉)なんだよって考え。
 ちなみに囲碁クエレート約1250の私には、Go-Up!の超々特級(Lv.6)が丁度良い相手(ちょっと強い位)です。)

対局内容は、Go-Up!のような同系CPUとの対局サイトとは異なり、
ネットの先の多種多様な棋風の人との対戦になるので
一局ごとにかなり印象が違い、マンネリ化しません。
(斬新とか形が悪いみたいに感じる手をよく打たれると感じますが、
 それは私が決まったCPUに慣れてしまっているからかも知れず、弊害と感じました。)

ボットが、レーティングの割に弱い印象を受けます。
これはボットは不慮の事故で負けることが少ないからと想像しています。
(ネットワーク障害(モバイルな人は電波悪い)、時間切れ(電話着信、客人来訪等含む)、ミスタッチなど)
でも余裕くれて打ってると低級のボットにたまに負けます...。

システム面では、囲碁サイト製作者としての視点からも含め、
以下のようなことを感じました。
・「対局中は相手のレーティングを表示しない」オプションがあるのは合理的で嬉しい
 ⇒相手のレートの方が高くて強いと思ってしまうと、
  相手の無理手も正しい(殺せない)手だと思い込んで縮こまってしまうので。
・アプリ側での音量調整があるのが実用的
 ⇒最近の端末、OS側での音量目盛1つでもやたらと音がでかいので。
・タッチでの操作方法(1pointモード相当)
 ⇒iPad(9.7inch)でもミスタッチを偶にしてしまうが、
  囲碁クエ慣れた後Go-Up!やると2pointでの着手確定が一手間多く少し煩わしいと感じる。
・終局判定結果の自陣/敵陣・死石表示はやはり欲しい
 ⇒終局判定結果を調整できないとしても、どう判定されたか確認したい。
  勝ってると思ったのに負けとなったのは、想定と異なる判定をされたのか?目算が甘いのか?の確認のため。
  活きてると思った石が実は死んでいるなど、認識誤りへの気付きのため(特に初心者時に欲しい)。
・レーティングの推移グラフを見たい(KGSのように)
 ⇒勉強した後にレーティングが上昇していく様子を確認したい。
・昔(ライフシステムがあった頃)は、レートがかなり上の相手ともガンガン置石ありでマッチングされ、
 ガチャ的に未体験ゾーンに触れられる(宇宙の人と打つ可能性も...)スリルがあったような気がするが気のせいか?
 ⇒人が増えたから?マッチングのロジックが変わった?置石対局オプションがみんなOFFになってるから?


そして一番参考にしたいと思ったのが、対局結果画面。
シンプルな勝敗表示の下に、
「すぐ対局」「棋譜を見る」「棋譜をツイート」の3つのボタンが表示されている。
(「すぐ対局」は左上、赤色で少し目立つ)
goquest_result.PNG
対局後に想定するユーザーアクションの導線が分かりやすく引かれており、
これが数千・数万局対局するユーザーさんを生んでいるのだと思います。
(私も、対局後無意識に操作して次の対局を始めている時があります。)
Go-Up!の場合は、無粋なアフィリエイト画像が目立つ(全然儲かるどころじゃないのに)上、
ドレスアップ勝利時はファーストビューにユーザーアクションのリンクが表示されないという有様。
(ちょっとネタバレ気味な画像ですが)
goup_result.PNG
何ができるかを提示する意味合いも含め、UIを見直そうと思います。
(これが、初期離脱率を下げる施策になるかなと思っています。)


気合入れて40局(レーティング確定)まで打ったのは
自分の棋力計測の主目的の他、
対局ソフトとしての彼我分析(目的や対象者が違うので競合ではありませんが)、
Go-Up!CPUの棋力目安計測、ブログ記事のネタ、等の目的もありましたが、
対局するためのストレスがとても少ないことで
単純に囲碁対局自体の魅力を再実感できました。
継続して少しづつ打っていくと思います。
posted by curren at 02:56| Comment(0) | TrackBack(0) | 日記 - 囲碁 | このブログの読者になる | 更新情報をチェックする

2016年08月23日

Go-Up!onlineに纏わる数字の話

Go-Up!を公開して半年位経ちました。
今も、当初想像したより数段アクセスが少なく寂しいばかりです。
Googleで「囲碁 初心者」で検索しても上位どころか何ページも進まないと表示されず、
そうなってくると、初心者の方は当サイトより検索・棋力ともに上位のサイトで虐殺されているかも知れません。

当サイトも、様々な統計情報を
自己把握(サイトの問題点分析・新機能実装の参考のため)とともに、囲碁普及に努めておられる方々とほんの僅かでも共有すべく、
Go-Up!に纏わるもろもろの数字を、まとめて公開していきたいと思います。

Go-Up! | 入門者・初級者向け 囲碁対局サイト
http://go-up.online/

(※今回の記事は、オンライン囲碁ゲーム COSUMI(http://www.cosumi.net/ )さんのブログの下記記事のパクりオマージュ・リスペクトです。
 http://www.perfectsky.net/blog/?p=273

@サイト利用状況

累計ユーザー登録数:713
累計対局数:6683

この半年での累計ユーザー登録数(非アクティブユーザーを多く含む)は、
囲碁クエストさんの今この瞬間(18:00)の接続者数(730人)に負けています。
また対局数も、1局平均15分として(根拠無し)、
COSUMIさんのピーク時(800面打ち位らしい)2時間分の対局数に負けています。

また、時系列でグラフ化しました。
日毎利用状況.PNG

グラフ中の紫部は、囲碁のビッグイベントのタイミングです。
(1) AlphaGo 対 イ・セドル戦 (2016/3/9〜15)
(2) 井山七冠誕生 (2016/4/20)
当サイトはピクりとも反応しておりません。(検索流入がほとんど無いためだと思います。)
それどころか、むしろなぜか平常時より減っています...。

一方、緑部はアクセスが増加したタイミングです。
(3) hidewさんのtweetでリンクいただく(2016/3/19) (https://twitter.com/hidew/status/711175194438598656 )
(4) 宇城はやひろさん(@hayhironau)にretweetいただく(2016/5/25)
(5) tmnさんのブログ「幽玄日記」にてご紹介いただく (http://d.hatena.ne.jp/tmn440/ ) (2016/5/26)
(6) 2ちゃんねるのニュー速VIPにスレが立つ (http://vipper.2ch.net/test/read.cgi/news4vip/1465394175/ ) (2016/6/8〜9)
(7) 参照元不明:称号機能追加したタイミング? (2016/4/25)

以前より面識のあったインフルエンサーの方のご紹介による流入、
そこから新たな方によるご紹介の流れは、これがソーシャルなのか、と感じた次第です。
また匿名掲示板という旧来のメディアでの意見も、生の声が聞けてとても参考になりました。
(背景の日本棋院前がラブホ前に見えると言う意見は意外でした。ここでもLv.12イラストが高評価だったのが嬉しかったです。)
称号機能追加後の原因不明のアクセス増加については、特徴的な機能を実装するといいことあるよ、という具合に前向きに解釈することにしました!

続けて対局数を時間帯別に見ていきます。
時間別利用状況.PNG

Go-Up!の時間帯推移を赤色で示し、
参考としてCOSUMIさんの推移を青で重ねました。
これはそんなに差異出ないと思いましたが結構出ました。
Go-Up!ユーザーは圧倒的に夜型人間が多いようです。
(特にドレスアップモードのプレイヤーは深夜型が多そうな予感はします。)

A路数・レベル 選択状況
まずは路数です。
サイズ.PNG

マイナーな路数での対局が少ないのは予想通りです。
(11路・17路は、達成状況ページの最上段をオープンするのに効率良いですし、
 そうでなくても特に11路はオススメなのですがねぇ。)
ただ予想と大きく異なったのが、19路の対局が少ないこと。
確かにGo-Up!的には19路で対局しないと開放できない要素はそこまで多くないのですが、
囲碁=19路 って風潮があると思っていた中、この結果は意外でした。
今回の解析で知りたい内容の一つである、
「Go-Up!ユーザーは既存の囲碁プレイヤーなのか?」を判断する一つの材料になりそうです。

次は、レベルです。
(Go-Up!サイトからこのブログへはリンクしてないので、若干ネタバレも含みます。)
レベル.PNG

Lv.4以降で徐々に減少していく、ある程度予想していた結果です。
(この減少が、勝ち進めないからなのか、飽きて辞めたからなのかを明らかにする必要があります。)
Lv.12でのピークの大きさは少し予想外でした。
強い方でも引き続きプレイしてくださっている表れであり、有難く思います。


B勝敗状況
これが、今回の一番の目的です。
CPUのレベル段階設定は、稼動前にCPU同士の自己対局により
隣り合うレベルの勝率が75%〜55%程度になるよう調整していましたが、
直接対局では相性に左右され信頼性に欠けると思っていました。
そのため、稼動後の実際の対局結果で棋力が段階的となっているかを
確認しようと思っていました。

まず、レベルごとでの勝率(人間側の勝率)です。
勝率(Lv).PNG

多少のバラつきはあるものの、概ね許容範囲内であるかなと思う数字であることが確認でき、一安心です。
Lv.0〜2までは、負けるのが仕事(入門者さんが「俺つえー」と思え、ノリノリで楽しめるように)なのでこの勝率でOKです。
Lv.3は、入門者の初めの壁になるレベルで、ここから人間側勝率5割位を理想とします。
Lv.4以降はドレスアップモードを考えてLv.6, 9, 12(各キャラクターの水着回)を少し強めになるよう調整していましたが、
これはLv.6, 9ではそうなっていないようです。(Lv.12は強いリピーターさんの結果が含まれるため、判断できない。)
微調整の方法も難しそうなので、現状のままで行きます。
また、たまに「あゆみ先生(Lv.7〜9)がエロ強すぎる」という声を聞くのですが、
若干その傾向もありますが、りょうかちゃん(Lv.10〜12)と比べてもそこまでの偏りは無いように思えます。

次に、レベル×路数の組み合わせでの勝率です。
勝率(Lv-サイズ).PNG

ここでは、レベルアップ条件に路数条件が加わる箇所(赤枠部分)での勝率を確認します。
(これが大きすぎる壁となっていないか?の確認。)
やはり若干の勝率低下はありますが、問題ない程度かと思います。
(ちなみにLv.11・15路盤などで勝率が極端に低かったりするのは、
 マイナー路数の対局数の母数が少ないためです。)


Cプレイ継続・上達状況
プレイヤーさんに関し、プレイの継続/離脱状況や上達状況を解析するため
プレイ回数・勝率(負け数)・最高到達レベル等を複合させて見たいと思いましたが、
ちょっと複雑そうだったので、今回はまずそれぞれ単独での数字を示します。

プレイ回数
プレイ回数.PNG

3人に1人以上は、1回で辞めています。
これは何とかしないといけないですねぇ。
13回付近に少しピークがあるのは、一通り全レベル制覇して帰っていく方々だと思います。

勝率
勝率(プレイヤー).PNG

勝率100%付近が圧倒的に多いことより、
勝ち逃げの方が多いような気がします。
また、上級者の方が一通りやってみて帰ることも多いようです。
このサイトが思い描いている、
対局を繰り返して上達し、勝てないレベルに勝てるようになる、
という使われ方は残念ながらあまりされていないようです...。

最高到達レベル
最高到達レベル.PNG

初期値であるLv.3と、その次の4が多いのは、やはり1回で帰ってしまう方が多いためです。
上達途中である、Lv.4〜11の人が多いのが望む姿なのですが。


これから、規模の大きな新機能(アドバイスガチャ)の実装に入りますが、
もしダメな点やリクエストがあれば随時検討し必要であれば優先実装しますので、
ご意見いただけると幸いです!

【追記】
もう一つ、超重要な統計を取るのを忘れていました。
Dモード(ステップアップ / ドレスアップ)別比率

・斬新さ・話題性・ニーズ・製作者のモチベーション的に、
 ドレスアップモードをサイトのメイン・売りにしていて、
 イラストには力とぶっちゃけ私財を投入している
・しかしイラスト要素を除いても、
 初心者向けサイトとして実用できるようにベース機能を作っているので、
 萌え要素に親近感が持てない人がフィルタリングされてしまうのは惜しい
という両面で考えているので、
どちらかのモードびいきという訳ではないのですが
実際のニーズはどうなのかを確認したいと思っていました。

サイトで記録している対局データはモードを区別しておらず、
解析済アクセスログから直近31日間の統計しか取れないため、
精度に問題を含んでいるだろうデータとなっていますが
結果は以下です。

ステップアップモード:62.5%
ドレスアップモード:37.5%

想像よりドレスアップモードの比率が少し低い気がしていますが、
とっても可愛いイラストがあまり目に触れていない感じの比率ではないので
良かったかなと思っています。

恐らく、初め1回だけステップアップモードでプレイしてそのまま離脱する人が多いことが
ステップアップモードの比率が多い理由だと考えています。
初回対局終了後の道しるべが必要なのかも知れません。


あとはSound ONにする人の比率も知りたいのですが、
これは現状知る仕組みがないのですよね...(かといってわざわざロギングするのもなんだし。)
ステージBGM選曲も時間掛けたので、是非聴いてみてもらいたいです!
posted by curren at 20:25| Comment(0) | TrackBack(0) | Go-Up! | このブログの読者になる | 更新情報をチェックする

2016年02月22日

初心者向け囲碁サイト「Go-Up!」を公開しました(萌え囲碁モード有)

初心者向け囲碁サイト「Go-Up!」を公開しました。

http://go-up.online/

本サイトの売りは、以下です。
・弱いコンピュータを取り揃えているため、
 入門者でもコテンパンにされず、段々と勝ち進んでいける。
・対コンピュータ戦のため、
 時間を気にせず長考できる。気兼ねなく研究のためのマッタができる。
・スマホ・タブレット対応
・ミスタッチの少ない操作方法(2Pointモード)採用により
 スマホ等の場合でも広い路数盤でも誤着手なく打つことができる。
・コンピュータの考慮時間が短く、人間のストレスを貯めない
 (ただし、複数ユーザーからのアクセス負荷試験はほとんどしていないので、
  もし好評いただき大盛況になったら、遅くなるかも知れません。(その場合は対処します。))
・上達のご褒美がある(ドレスアップモード:萌え囲碁・脱衣囲碁)
・華のある・賑やかな対局画面(でもまだ物足りないので装飾付加予定です。)
・対局記録が残り、励みになる
 (ただし、ユーザー登録機能があやしいため、データ消えたらゴメンナサイ)
・対局記録はステップアップモード・ドレスアップモードで共用
 (公共の場ではステップアップモードで、家に帰ってからはドレスアップモードを堪能できたりします。)

まだまだ全然開発途中のもので、
準備できていないもの(ユーザー登録情報更新機能やドレスアップモードの画像など)や、
重要なゲーミフィケーション要素の非搭載(敗北しても蓄積するポイント)、
見た目がしょぼいもの(勝利時の紙吹雪の舞い方等)、バグなんかもあるかも知れませんが、
ぜひ入門向けにどうぞ。

---------------------------------------------------
以前某掲示板で
http://kohada.2ch.net/test/read.cgi/gamestones/1287041998/42-44
本気で残念アプリと評されたトラウマから、
今回は煮詰めて出そうと思っておりましたが、
いろいろ諸事情も重なり、我慢しきれず
予定より三段階くらい早いタイミングでリリースしてしまいました。
(うち一つの事情は、AlphaGoです。
 AlphaGoで、囲碁ってどんだけ深いゲームなんだよ、って興味抱いた方、
 このサイトで対局できるCPUは、一番強いものでも、
 AlphaGoと戦った他の囲碁コンピュータの中でも一番弱いものの更に旧バージョンですが、
 片鱗は味わえるかなと思います。)

リリースタイミング云々より、
本来リリースしようとしていた形は
このような囲碁サイトではなかったのですが、
一つの節目ですので、ぜひプレイしてみてください。
ご意見は専用フォーラムがありますので、そちらへ是非お願いします。
posted by curren at 19:00| Comment(0) | TrackBack(0) | Go-Up! | このブログの読者になる | 更新情報をチェックする

2016年01月30日

こんにちはAlphaGo

Googleの囲碁プログラム、「AlphaGo」が史上初めて人間のプロ棋士にハンディ無しで勝利した、
との記事が巷を賑わせています。

この話題で一番驚いたのが、
次の対戦相手が、世界最強棋士との呼び声の高いイ・セドル九段であること。
いきなりラスボスで、ここで勝利すれば一気にエンディングなのです。

これまで努力して一歩一歩進化してきた他の囲碁プログラムを一気にブチ抜く急激な進化は、
Googleの技術力を持ってすればありえることだと思うのですが、
ある意味興行的には、もう少しじわじわと盛り上がりを継続した方がよいのではと思いました。
(Google的には、AIの成果を示す対象が偶然囲碁だっただけなので、経過地点・踏み台の一つなのでしょうが。)
ここは一つ、対イセドル戦の前に、対イゴドル戦を挟むとかどうでしょう?Googleさん。

AlphaGoの出現により、
囲碁というゲームの終焉だとか、魅力が無くなる、とか言う意見もちらほら見られます。

同じ土俵で戦う、他の囲碁プログラム(というか囲碁プログラム開発者の方)には
一番大きな影響があると思います。
「強さを極める」と言う意味で、プロ棋士の方にも多少なりとも影響があるかと思います。

が、人間の一つの娯楽としての囲碁の魅力はそれで消えるのでしょうか?
娯楽としては、人間がそのゲームをプレイすることに楽しさ・面白さを感じられれば魅力的であり、
別にコンピューターが最強になろうが、娯楽の魅力は変わらないと思います。
大多数の囲碁プレイヤーは、現在でもトッププロには敵わないわけで、
その直接関わることのない雲の上の存在が人間からコンピュータに変わろうが、
何の影響もないと思います。

(同様に、日本の棋士が世界戦で勝つことが日本囲碁界の振興に繋がるってのも、
 雲の上の出来事であんまり関係無さそうな話。)
だってオセロとかチェスとか将棋とか、まだ普通にやってるでしょ?

それよりも、囲碁の魅力の低下や文化の消失に対する直接的な脅威は、
プレイヤー(囲碁打ち)の減少だと思っています。
囲碁は一人では打てないゲーム。
対局相手の存在・多様性(同じような棋力の相手、会話の弾む相手)が、
囲碁という文化の活性化の前提条件になると思います。

また強さの面でも、
プレイヤーの山の裾野を広げることにより、プレイヤーの頂点の高さも上がると思っています。
AlphaGoがそうしているように、対局の積み重ねが、強さに繋がる。
人間がまた強くなりたいと望むなら、
(人間・コンピューター問わず、)プレイヤーを増やす必要があります。

そう考えると、
AlphaGoという新たな碁打ちの1人の登場を歓迎したいと私は思います。
こんにちは、AlphaGo ちゃん。
この新人は更に、とんでもない棋力と、華々しい話題性も持ってきた、
スーパーアイドル囲碁打ちとも言えるでしょう。

ただ、使用するハードのスペックなどもあり、
現在のプロ棋士と同様、直接対局できる機会は無いかも知れなく、
一般人には直接影響無いのかも知れませんね。

ただ一般人で、棋力も相当低い私にも、
このAlphaGoの登場の影響が少しありそうです。
この一瞬の盛り上がりのピークに、
ちょっと便乗したいと思っています。
posted by curren at 13:42| Comment(0) | TrackBack(0) | 日記 - 囲碁 | このブログの読者になる | 更新情報をチェックする

2015年06月18日

「お悩み天国 趙治勲の爆笑人生相談室」書評レビュー

最近、デバッグのためGnuGoなどと打つ機会があるのですが、
囲碁、面白いですねぇ。
しかし、GnuGoのバージョン違いによる棋力差が
私の棋力では分からない(3.0以上は、全て「強い!」としか感じられない)ため、
もう少し強くなりたいと思い、久し振りに棋書を購入しようと思いました。

GnuGo3.0に勝てない程度の棋力では、
盤上のテクニックよりむしろ広汎な心持ち・精神論の部分が大きいのでは
(相手の言いなりにならないとか、小を捨てて大に就くとか、後回しにしないとか)と思い、
書店でいろいろ立ち読みしたのですが、
心に響いたのがこの本でした。

「お悩み天国 趙治勲の爆笑人生相談室」
です。

(って言うか書店で笑っちゃうの堪えられなかったので購入した。)

内容は、棋力の向上のための本では全くありませんが、
囲碁界のレジェンド、二十五世本因坊治勲 が、
週刊碁の読者から寄せられたさまざまな悩みに答えるという、
まあ、まんまタイトル通りの内容です。

しかしこの回答が凄い。
具体的な内容は、著作権とか引っかかるんであまり書けないですが、
大三冠・グランドスラム、本因坊十連覇者である趙治勲氏が、
まさに「蝶のように舞い、蜂のように刺す。蝶チクンです。」な華麗な回答を繰り広げます。
大体初めはゴルフの話か、ひと目シリーズ買わせる話か、「よんろのご」でお馴染みの某棋士がディナーおごってくれない話かでのらりくらりと舞いながら、
質問者の悩みや世相の本質・急所を捉えた鋭い回答を放つ。
「慧眼」という言葉が自然と思い浮かぶ、見事な回答が多いのです。

棋力というのは、
 @全局面を把握し、最も「効果」の高い所に優先して着手する力
 A「効果」の高い/低いを的確に判断できる力 (コンピュータ囲碁的には、評価関数)
の二つからなっているのと思っています。
社長や政治家で棋力が高い人が多いのは、@の力がとても強いから。
囲碁が強くても、組織運営などが上手く行かないのは、@の力はあっても、Aについて、組織運営に対する「効果」が正しく評価できていないから。
なのだと思います。
(@は広汎的な考え方に対して、Aは対象に特化したものであり、応用する対象によって評価値の単位が変わったりする。)
そして、チクンさんは、圧倒的な@の力と、庶民生活におけるAの感性が正しく評価できているから、
素晴らしい回答ができるのだと思います。

囲碁の普及に関して、
多分他の棋士の方や、あるいは他の普及を志す方はあまり言わないでしょうが、
やっぱりそうだよなぁ、という認識を述べられています。
『頭がある程度よくないといけない、これが碁の致命的とも言える弱点なんですね。』
こう割り切れない立場の方もいらっしゃるとは思いますが、
この前提を置くことで、楽にもなるし、対象を限定してより効率的に成果=碁プレーヤーを増やすことが出来るのではないかと思いました。
不確定な未来のことを予測して行動する必要があること(=戦略立案・マネージメント・企画など)は、
一定の手順を踏めば一定の結果が得られること(=作業)や、のみに依存すること(=ギャンブル)より難しい。
というのは真理なのと同様に。

あと、村川くん伊田くん一力くんを連れて中国の囲碁リーグに参加した話で
『そのうちいいことがあるでしょう。』
と言ったことも、現在を知る皆さんではその慧眼っぷりが分かるかと思います。

それと、このお悩み天国では、
質問者の方の質問の仕方もユーモアに溢れており面白い。
『井山さんのファンですが、私が対局場に応援に行くと負けてしまいます。
 対局場と同じビルのクリニックに行っただけでも負けてしまいます。』
と言った具合。(質問の時点でもう吹いちゃうわ。)

ということでお悩み天国2も悩まず買いました。

まだ連載しているなら、3が出たら買っちゃうなぁ。
いっそ投稿してみようかなぁ。


チクン先生、こんにちは。
お悩み天国、とても面白くて単行本1巻・2巻ともに購入しました。
ブログにも感想記事を書きましたので、先生も、Y・H某法人副理事長もご覧ください。
また、ひと目の詰碁・ひと目の手筋も購入しました。(引越の際にブックOフに行ってしまいましたが。)

さて、私の悩みですが、
萌えの力で少しでも囲碁をカジュアルに楽しめるように、
脱○囲碁のアプリを作ろうと計画しましたが、
その後8年半経ってもまともなものが作れず困っています。

以前作成したβ版のようなものがあるのですが、
2ちゃ○ねるでは「マジで残念もいいとこだな」などと酷評され、
更にJavaAppletで作ったため、近年ではコンピュータに損害を与える可能性が高いものとして、実行すら容易にできない状態になってる始末です。
(うちのAppletに限らず、囲碁関係のWeb上のツールのJava率は異常。あのコーヒーカップマーク、最近囲碁サイトでくらいしか見かけないわ。)

それでもなぜかモチベーションだけは維持しており、
ことあるごとに製作のことを考えており、
1年3ヶ月前からJavaScriptでスマホ対応版の製作も着手しているのですが、
未だ公開できる形にならず、また延べ8年半という月日を重ね、
私も歳を取り、妻子を持ち、世間的には落ち着いた世代になったのでしょうが、
そんなアラフォー妻子持ち(小さい可愛い娘もいます)がこんな二次元萌え微エロゲームを作っているのも
ちょっと...という気も少しします。(微エロじゃなく弩エロにすればよい、という問題ではないとも分かっています。)

そこで、作成のモチベーションを高めるべく、
お悩み採用の色紙の代わりに、
アプリで勝利時のご褒美画像として使用する、
チクン先生の脱○画像をください。
(1枚目:対局服(スーツ)、2枚目:肌着、3枚目:ナイショ(※ハンカチはくわえたままでいてください。)

また、最後の一枚を掛けての対局では、
やすやすと先生の最終画像を見せるわけにはいかないので、
プレイヤーにはコンピュータではなく、先生に打っていただきます。
(アプリはインターネット上で24時間稼動しますので、先生に24時間の対応をお願いします。)
これで最後の一枚に辿り着ける可能性があるのは、日本広しといえど、○栩さんとか井○裕太さんとか数人だけになるので少し安心ですね。


だめか。
posted by curren at 01:27| Comment(0) | TrackBack(0) | まとめ - 棋書 | このブログの読者になる | 更新情報をチェックする

2015年05月27日

古い弱いGNUGoメモ

弱いうちの対局相手は、コンピュータが気兼ねしなくて良い、というものの、
弱いコンピュータ碁があまりないので、どうすんのよ?ってこと。

最近のGNU Goが強すぎるので、
昔の弱いころのGNU Goを使おうという発想です。
しかしいろいろ機能やI/Fが異なるので、利用が難しかったりします。
その辺りの調査内容をメモ。


【前提:最近のGNU Go(3.8とか)】
・棋力:KGS 7k前後 (GnuGoBot38)
・ソースコード:公式からダウンロード可能
 http://ftp.gnu.org/gnu/gnugo/
・実行ファイル:だいたいどっかで入手可能
・GTP version 2に対応している
 →多くの囲碁GUIソフトで対局可能
・デフォルトで投了する (投了させないためには --never-resign オプションを付ける)

【3.0】
・棋力:不明
・ソースコード:開発用リポジトリからダウンロード
 http://git.savannah.gnu.org/cgit/gnugo.git/tag/?id=gnugo-3-0-0
・実行ファイル:各自でコンパイルして作成
・GTP version 2に対応していない。
 →GTP version 1は使用可能。
  (genmoveコマンドの代わりに、genmove_black, genmove_whiteコマンドを使う etc.)
・投了しない
・GTPモードで起動オプション --gtp-inputが使えない
 →代わりに、リダイレクトでGTPコマンドファイルを読み込ませる
・GTPモードで起動オプション --infileが使えない
 →代わりに、GTPコマンド(loadsgf)でSGFファイルを読み込む
・GTPモードで起動オプション --boardsizeが使えない
 →代わりにSGFファイルのSZ[]でサイズを指定する
・GTPモードで起動時にバージョン・Copyrightメッセージが出力される
 →--quietオプションで抑制する

【2.6】
・棋力:不明 (調査中)
・ソースコード:公式からダウンロード可能
・実行ファイル:各自でコンパイル
・GTP非対応
 →asciiモードで、--infileオプションでSGFファイルを読み込ませて、次の一手を生成可能
・GTPモードで起動時にバージョン・Copyrightメッセージが出力され、抑制不可
 →メッセージは無視する
・7路盤だと、異常な座標に打つことがある
 (明らかな悪手、自らの眼を潰す、着手禁止点に打つ等)
 →9路盤以上だと発生しない様子。

【2.4】
・棋力:不明
・ソースコード:※入手不能?
・実行ファイル:各自でコンパイル
※ソースコード未入手のため、詳細動作不明

【2.0】
・棋力:KGS 12k前後 (gnugo2)(調査中)
・ソースコード:派生したコード(Aloril氏による簡易GTP対応, 19路以外対応版)が下記に存在
 http://osdn.jp/projects/sfnet_londerings/releases/
・実行ファイル:各自でコンパイル
・--infileオプションが無い
 →代わりに同義の-lオプションを使う(-lオプションは最新版でも使用可能)
・GNUGoがパスしたときにアサーションエラーが発生する(19路以外のみ?)
 →ソースコード(main.c, util.c)を改変して、不正座標を返したときはパスと見なし、assertionしないようにする
・コンソール以外からの使用時(phpからの呼出等)に、asciiモードではなくgmp(Go Modem Protocol)モードになってしまう
 →ソースコード(main.c)を改変して、isatty()での判定による強制gmpモード化させないようにする

【liberty 1.0 (GNUGo 1.2〜2.0の時期の派生)】
・棋力:KGS 16k前後 (libertybot)(調査中)
・ソースコード:派生したコード(Aloril氏による簡易GTP対応)が下記に存在
 http://osdn.jp/projects/sfnet_londerings/releases/
・実行ファイル:各自でコンパイル
・インターフェースがかなり違う(まだ使い方がよく分かりません...)
 ⇒Aloril氏による修正バージョンでは、GTPによる対局に強制されるっぽい。
  GTPコマンド(PLAY, reg_GENMOVE等)打てば動作させられますが、単体ではつらい。
  囲碁クライアントや、ネット碁サイト接続に特化させた作りになっていると思われる。
・SGFファイル読込など、途中局面から開始する手段が用意されてない。
 (gtpのplayコマンドなどで読み込ませる?)
・低路数(13路未満)でCPUが白番で、黒番が初手天元近くに打つと、CPUが二手目でパスする。
 (空き隅無しと判定してしまうため。)

【1.2】
・棋力:調査中(30k以下?) (調査中)
・ソースコード:公式からダウンロード可能
・実行ファイル:各自でコンパイル
  → Windows(32bit)の実行バイナリ作ってみました。こちら(gnugo.exe)です。(ご利用は自己責任でお願いします。)
・インターフェースが、対話方式による対局しかできない
・19路以外に未対応(ソースコード上、バリバリ"19"とか"18"とか直値埋込)
・saveコマンドでgnugo.datに局面保存する機能があるっぽい
 →gnugo.dat生成すれば、途中局面からの手生成ができそう

参考:
http://gorogoronyan.web.fc2.com/igo/kgs_bot1.html
http://senseis.xmp.net/?GNUGo
http://kamakama.s151.xrea.com/makegnugo.exe.html

情報の観点が偏っていますが、折角なので共有します。
なお、内部ロジックの3.8, 3.0, 2.6, 2.0切替対応のデバッグ時に、
私ではその違いに気づけず、正しく切り替わってるか確認できないのが悲しいです。
(総じて負ける。ただし、2.6以下だと死活が弱く、混戦にするとたまに勝てることは気づきました。)
posted by curren at 00:37| Comment(0) | TrackBack(0) | 日記 - 囲碁 | このブログの読者になる | 更新情報をチェックする

2015年02月03日

萌え囲碁漫画「みことの一手!」書評レビュー

ということで、買いました。
mikoto1.JPG

宇城はやひろ先生による萌え囲碁漫画は
5年前にも雑誌掲載されており(「白黒つけましょ!」)、
その時も記事にさせていただきました。(⇒当時の記事

今回は、自分が囲碁の情報アンテナが鈍っているため、
リアルタイムで雑誌掲載は追えなかったのですが、
単行本化されたということで、購入しまとめて読むことができました。


4コマの形式を取っていますが、
ストーリー重視の4コマです。

ヒカルの碁同様、作品を楽しむのに、囲碁の知識は全く無くても、
ストーリーを問題なく追うことができます。
囲碁の知識があると、背景などでクスっとすることができます。(棋書の名前とか)

登場人物(囲碁部のメンバー)のキャラが立っています。
・みこと:8段格の主人公。しかしライバル:蛍にはしばらく勝ったことが無い。
・蛍:みことのチームメイトにして、全国大会覇者。碁キチ。
・葵:百合脳(分からなければググってください)の女の子。
・文香:茶道部のスパイだが、気付いたら囲碁部に。

表紙にはいない、主にネタ担当、葵ちゃんと文香ちゃんです。
(※引用画像問題あれば削除します。)
mikoto2.JPG
萌え好きの方にはこちらの2人は特にキュンとくるかも知れません。
可愛いは正義。

後半以降の大会編では、
登場人物4人のキャラクターを活かしたネタと、
4人それぞれの成長が描かれています。

5年前の記事でも同じようなこと書いてるんですが、
作者の方が囲碁のこと、棋力、そして何より楽しさを知って書いているので、
楽しい作品になっているのだと思います。
(あとがき 読むとすごく分かります。
 仲間と頑張る楽しさもあるから、きっと強くなれるんでしょうね。)

作中の言葉を借りると、
「囲碁を愛することに自信が持てない人に 私が負けるわけない」です。
そうして描かれた作品からは、自然と楽しさが伝わってくる。

とてもキャラの立った4人でしたので、
4コマの形式でなくても、よりストーリー主体で
この4人の成長と活躍の続きを見たい。
そう思いました。
(一方の、より百合百合しく、という思いは、胸に仕舞っておきます。)


それと別件なんですが、関西○院さん、
ネット☆スタァG単行本化はまだですか?


posted by curren at 01:04| Comment(1) | TrackBack(0) | 日記 - 囲碁 | このブログの読者になる | 更新情報をチェックする

2014年10月15日

備忘録:アルファチャネル付きアニメーションgifからスプライト画像の変換

個人的備忘録です。
アニメーションgifからスプライト画像を生成する方法。

現時点での正攻法は、
ImageMagickなどの画像処理ツールを使うのが、
要望を全て叶えるための手段だと思いますが、
自分のようなゆる業務アプリ屋が酒飲みながら挑戦するには敷居が高いので、
制限があったり、できるファイルの品質は若干低いですが、
テスト用のスプライト画像として使えるものくらいは生成できる方法です。

準備:
対象となるアニメーションgifファイルを準備します。
ここでは、
http://erihamu.blog.fc2.com/blog-entry-71.html
上記サイト様から拝借しましたこの画像を使用します。
(上記サイトで配布されているテクスチャも高品質で要チェック。)
MIKU-00.gif

@animated gifからスプライト画像への変換
本格的なツールはいろいろ設定が大変なことから、
Webサービスを探したところ、英語のサイトですが、このようなサイトがありました。

Gif2sprite
http://gif2sprite.com/

ローカルのアニメーションGifをアップロードして、
JPEGのスプライト画像を生成するWebサービスです。

使い方はシンプルな反面、細かな指定はできません。(圧縮率の指定のみ)
対象ファイルも、web上の素材の直接指定はできません。
そして何より、変換先ファイルはJPEGのみです。
これは、gifの透過色情報が消えてしまうことを意味します。
また、イラスト系画像では余計なノイズが乗ってしまうことも意味しています。

できあがったスプライト画像はこちらです。
(横長すぎるのでサムネイル画像で表示しているため、ぼやぼやです。詳細はクリックしてご確認ください。)
sprite-miku-008d4fa498e7121d96137c58bc1f2e0b83.jpg

スプライト画像のほか、分割情報を格納したCSSファイルもダウンロードできます。
(自分は細かいこと分かりませんが(ちょっと調べたが太刀打ちできなかった)、
 CSSでアニメーションさせるためには、ここで生成されるCSSのほかに、
 アニメーションさせる仕組みを自前で付加させる必要がありそうです。CSSなりJavaScriptなりで。
 この辺りを参考に。
  http://clubringo.com/css%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%83%91%E3%83%A9%E3%83%91%E3%83%A9%E3%82%A2%E3%83%8B%E3%83%A1%E3%82%92%E4%BD%9C%E3%82%8B%E6%96%B9%E6%B3%95/

A透過情報の再設定
先の作業で生成したスプライト画像には透過情報が消失してしまっているので、
再度透過情報を付加してあげる必要があります。

透過部分には純色の黒が設定されるようなので、
これを画像処理ツールでうまく透過します。
PhotoShop(自分使ったこと無いですが)や、
貧者のPhotoShop;GIMPのファジー選択ツールや色域選択ツールなんかを駆使します。
とはいえ、元画像で純色の黒を多用しているものだと、
透過色との区別が付かず、相当苦労すると思います。

こうして出来上がった画像がこちら。(適当に処理してます。)
(横長すぎるのでサムネイル画像で表示しているため、ぼやぼやです。詳細はクリックしてご確認ください。)
sprite-miku-alpha.png

以上です。

単にWebページでアニメーションさせるだけなら、アニメーションGIFでOKなのですが、
Flash的にアニメーションの進行を制御したりするためには、
Flashが特にモバイル環境で使用できなくなってきた昨今では、
このスプライトの使用が重要になっているそうです。

追記
上記の方法、ダメみたいです。
(アニメーションのフレームの順序がバラバラになる場合がある。)
なので、
http://www.mojimaru.com/animegif/animebunkai.php
このサイトでアニメーションgifを単体画像ファイルに分解して(zipでダウンロード可)、
http://ja.spritegen.website-performance.org/
今度はこっちのサイトでスプライト画像として結合する方法が取れます。(さっきのサイトのzipがそのまま使える)
ただし、どちらもアップロード可能なファイルサイズの制限がある(3MB?と1MB)のと、
スプライト画像結合は1px未満のマージンを設定できないので、
実運用に使用するようなファイルは手でしこしこ作るしかないかも知れません。
posted by curren at 23:17| Comment(0) | TrackBack(0) | 日記 - 一般 | このブログの読者になる | 更新情報をチェックする

2014年06月21日

GNU Go ドキュメント和訳 (19章 GTPのみ)

GNU Go Documentation の
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
プログラムを終了する
 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


protocol_version
プロトコルバージョンを取得する

 引数:
-
 エラー:
-
 戻値:
・プロトコルバージョン番号
 ステータス:
GTPバージョン2標準コマンド
 訳注:


name
プログラム名を取得する

 引数:
-
 エラー:
-
 戻値:
・プログラム名
 ステータス:
GTPバージョン2標準コマンド
 訳注:


version
プログラムのバージョン番号の取得

 引数:
-
 エラー:
-
 戻値:
・バージョン番号
 ステータス:
GTPバージョン2標準コマンド
 訳注:


boardsize
使用する盤の路数の設定・盤面をクリアする

 引数:
整数
 エラー:
エンジンが扱えない路数
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


query_boardsize
現在の路数設定を取得する

 引数:
-
 エラー:
-
 戻値:
・盤面路数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


clear_board
盤面をクリアする

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


orientation
orientationの値を設定し、盤面をクリアする
(Set the orienation to N and clear the board)

 引数:
整数
 エラー:
orientationが不正
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
実行しても効果がよく分かりません。
盤面座標軸方向が回転するわけでもないよう。


query_orientation
現在のorientation設定を取得する

 引数:
-
 エラー:
-
 戻値:
・orientation
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


komi
コミを設定する

 引数:
小数
 エラー:
引数が正しくない
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


get_komi
コミを取得する

 引数:
-
 エラー:
-
 戻値:
・コミ
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


black
黒石を指定した座標に着手する

 引数:
座標
 エラー:
不正な座標指定
不正な着手
 戻値:
-
 ステータス:
廃止されたGTPバージョン1コマンド
 訳注:


playwhite
白石を指定した座標に着手する

 引数:
座標
 エラー:
不正な座標指定
不正な着手
 戻値:
-
 ステータス:
廃止されたGTPバージョン1コマンド
 訳注:


play
指定した色を指定した座標に着手する

 引数:

座標
 エラー:
不正な座標指定
不正な着手
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


fixed_handicap
固定位置に置石を配置する

 引数:
置石数
 エラー:
現在の路数に対して不正な置石数
 戻値:
・置石を置いた座標リスト
 ステータス:
GTPバージョン2標準コマンド
 訳注:
星・天元への置石配置。
GNU Go 3.8では9子を超える置石(星目風鈴など)には対応していないようである。


place_free_handicap
置石を置く場所を考慮して置石を配置する

 引数:
置石数
 エラー:
不正な置石数
 戻値:
・置石を置いた座標リスト
 ステータス:
GTPバージョン2標準コマンド
 訳注:
対局開始前にN手分先に打つ、というイメージ。
置石を置く場所はGNU Goが考える。
実行する度その場所は変わる。


set_free_handicap
指定した自由位置に置石を配置する

 引数:
置石を置く座標リスト
 エラー:
盤面が空でない
不正な座標リスト
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


get_handicap
置石数を取得する

 引数:
-
 エラー:
-
 戻値:
・置石数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


loadsgf
SGFファイルを読み込み、石を配置する
(オプションで、指定した[手数/座標(への初めの着手)]の直前までの着手を配置する)

 引数:
ファイル名
[手数]
[座標]
 エラー:
ファイルが存在しない
SGFファイルの解析失敗
 戻値:
・次に着手すべき色
 ステータス:
GTPバージョン2標準コマンド
 訳注:


color
指定した座標にある石の色を取得する

 引数:
座標
 エラー:
不正な座標
 戻値:
・色 or 空("empty")
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


list_stones
指定した色が配置されている座標リストを取得する

 引数:
 エラー:
不正な色
 戻値:
・座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
リストは着手順ではないよう


countlib
指定した座標にある連の呼吸点の数を取得する

 引数:
連の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・呼吸点数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


findlib
指定した座標にある連の呼吸点の座標リストを取得する

 引数:
連の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・呼吸点の座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


accuratelib
指定した色を指定した座標に着手した場合の、連の呼吸点の数を取得する

 引数:

座標
 エラー:
不正な色
不正な座標
 戻値:
・呼吸点の座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
accurate_approxlibと同一の動作


accurate_approxlib
指定した色を指定した座標に着手した場合の、連の呼吸点の数を取得する

 引数:

座標
 エラー:
不正な色
不正な座標
 戻値:
・呼吸点の座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
accuratelibと同一の動作


is_legal
指定した色の指定した座標への着手が合法かを判定する

 引数:

座標
 エラー:
不正な色
不正な座標
 戻値:
着手が合法なら 1
非合法なら 0
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


all_legal
指定した色の全ての合法手の座標リストを取得する

 引数:
 エラー:
不正な色
 戻値:
・座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


captures
指定した色が捕獲したアゲハマの数を取得する

 引数:
 エラー:
不正な色
 戻値:
・アゲハマの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


last_move
最後の着手を取得する

 引数:
-
 エラー:
直前の着手が分からない
 戻値:
・直前に着手した色
・直前に着手した座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


move_history
着手履歴を逆順(初手が最後)で出力する

 引数:
-
 エラー:
-
 戻値:
・着手履歴リスト
(1手を1行で表し、1手分は色 座標。)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


invariant_hash
回転・左右対称を考慮した不変の盤面ハッシュ値を取得する

 引数:
-
 エラー:
-
 戻値:
・盤面の不変ハッシュ値(16進数)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


invariant_hash_for_moves
指定した色が可能な全ての合法手によって得られる、回転・左右対称を考慮した不変の盤面ハッシュ値を取得する

 引数:
 エラー:
不正な色
 戻値:
・合法手座標と不変ハッシュ値のリスト
(1行に1つの合法手座標とハッシュ値)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


trymove
指定した色を指定した座標に試しに着手する

 引数:
色,
座標
 エラー:
不正な色
不正な座標
不正な着手
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
popgoで元に戻せる


tryko
不正なコウ取りを許容して、指定した色を指定した座標に試しに着手する

 引数:
色,
座標
 エラー:
不正な色
不正な座標
不正な着手
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
popgoで元に戻せる


popgo
trymove, trykoコマンドによる試し着手を1手分元に戻す

 引数:
-
 エラー:
直前のtrymove,tryko着手無し
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


clear_cache
キャッシュをクリアする

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
何のキャッシュ?


attack
指定した座標にある連に攻撃を試みる

 引数:
連の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
攻撃手無し: 0
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
攻撃コードが2以上になるのはどのような時?


attack_either
指定した2つの連に攻撃を試みる

 引数:
連1の座標
連2の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・連に対する攻撃コード
(攻撃コードが0でなければ、指定した連のどちらかへの攻撃手があることを保証するが、攻撃手の座標は返さない。)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


defend
指定した座標にある連の防御を試みる

 引数:
連の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
防御手無し: 0
防御手有り:
・防御コード(1〜)
・防御手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
防御コードが2以上になるのはどのような時?


does_attack
指定した座標への着手が指定した連への攻撃かどうか判断する

 引数:
着手の座標
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・攻撃コード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


does_defend
指定した座標への着手が指定した連の防御かどうか判断する

 引数:
着手の座標
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・防御コード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
原文ではReturns:attack codeとなっているが誤記か?


ladder_attack
指定した座標にある連に厳格なシチョウでの攻撃を試みる

 引数:
連の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
攻撃手無し: 0
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
厳格なシチョウ(strictly in a ladder)とは、緩みシチョウではないということと推測される。


increase_depths
思考ルーチンの読みの深さを1レベル増やす

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
depth = 読みの深さ?


decrease_depths
思考ルーチンの読みの深さを1レベル減らす

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
depth = 読みの深さ?


owl_attack
OWLを使用して、指定した座標にある漣に攻撃を試みる

 引数:
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
攻撃手無し: 0
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
OWL:Optics With Limit-negotiation 眼形データベースを用いた生死判定のロジック。(12.1 The Owl Code参照)


owl_defend
OWLを使用して、指定した座標にある漣の防御を試みる

 引数:
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
防御手無し: 0
防御手有り:
・防御コード(1〜)
・防御手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


owl_threaten_attack
OWLを使用して、指定した座標にある漣に2手での攻撃を試みる

 引数:
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
攻撃手無し: 0
攻撃手有り:
・攻撃コード(1〜)
・攻撃手の座標1
・攻撃手の座標2
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


owl_threaten_defense
OWLを使用して、指定した座標にある漣の2手での防御を試みる

 引数:
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
防御手無し: 0
防御手有り:
・防御コード(1〜)
・防御手の座標1
・防御手の座標2
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


owl_does_attack
OWLを使用して、指定した座標への着手が指定した漣への攻撃かどうか判断する

 引数:
着手の座標
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・攻撃コード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


owl_does_defend
OWLを使用して、指定した座標への着手が指定した漣の防御かどうか判断する

 引数:
着手の座標
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・防御コード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


owl_connection_defends
OWLを使用して、指定した座標への着手が指定した2つの漣を接続しての防御かどうか判断する

 引数:
着手の座標
漣1の座標
漣2の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・防御コード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


defend_both
指定した2つの連の防御を試みる

 引数:
連1の座標
連2の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・連に対する防御コード
(防御コードが0でなければ、指定した連の両方の防御手があることを保証するが、防御手の座標は返さない。)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


owl_substantial
OWLを使用して、指定した連を除去した場合に、漣が活きられるかどうか判定する
(Determine whether capturing a string gives a living dragon)

 引数:
(連の)座標
 エラー:
不正な座標
座標に石が無い
 戻値:
漣が活き: 1
それ以外: 0
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
訳の動作だと、連・漣両方の座標指定が必要に思える。


analyze_semeai
攻め合いを分析する
(指定した2つの漣の攻撃・防御を試みる)

 引数:
漣1の座標
漣2の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
防御コード
攻撃コード
攻撃・防御手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


analyze_semeai_after_move
指定した座標への着手の後の攻め合いを分析する

 引数:
着手の色
着手の座標
漣1の座標
漣2の座標
 エラー:
不正な座標
 戻値:
・防御コード
・攻撃コード
・攻撃・防御手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


tactical_analyze_semeai
OWLを使用せずに、攻め合いを分析する

 引数:
漣1の座標
漣2の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・防御コード
・攻撃コード
・攻撃・防御手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
原文ではReturns:status of dragona, dragonb assuming dragona moves firstだが、GnuGo3.8の動作ではanalyze_semeaiと同形式の結果を返す。


connect
指定した2つの連の接続を試みる

 引数:
連1の座標
連2の座標
 エラー:
不正な座標
座標に石が無い
2つの連の色が違う
 戻値:
接続手無し: 0
接続手有り:
・接続コード
・接続手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


disconnect
指定した2つの連の切断を試みる

 引数:
連1の座標
連2の座標
 エラー:
不正な座標
座標に石が無い
2つの連の色が違う
 戻値:
切断手無し: 0
切断手有り:
・切断コード
・切断手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


break_in
指定した連から、指定した領域への侵入を試みる

 引数:
連の座標
領域の座標
 エラー:
不正な座標
連の座標に石が無い
 戻値:
侵入手無し: 0
侵入手有り:
・侵入コード
・侵入手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


block_off
指定した連から、指定した領域への侵入のブロックを試みる

 引数:
連の座標
領域の座標
 エラー:
不正な座標
連の座標に石が無い
 戻値:
防御手無し: 0
防御手有り:
・防御コード
・防御手の座標
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


eval_eye
指定した領域の眼形スペースを評価する

 引数:
領域の座標
 エラー:
不正な座標
 戻値:
眼を形成する場合:
・最小の眼の数
・最大の眼の数
・(最小≠最大の場合)[眼の数を減らす攻撃手の座標]
・(最小≠最大の場合)[眼の数を減らさない防御手の座標]
眼を形成しない場合・どちらかの色に属さない: -1
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


dragon_status
漣の状態を判定する

 引数:
[漣の座標]
 エラー:
[不正な座標]
[座標に石が無い]
 戻値:
・漣の状態
(活き:"alive"
 瀕死:"critical"
 死に:"dead"
 不明:"unknown")
・(瀕死の場合)[攻撃手の座標]
・(瀕死の場合)[防御手の座標]
※座標指定が無い場合、全ての漣の状態が1行1連の"A4: alive"のような形式で返される
(FIXME:セキ活きと単独活きを区別すべき。コウを識別すべき。)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


same_dragon
指定した2つの石が同じ漣に属するか判定する

 引数:
石1の座標
石2の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
同じ漣: 1
それ以外: 0
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


unconditional_status
指定した座標の無条件の状態を判定する

 引数:
座標
 エラー:
不正な座標
 戻値:
・座標の状態
(未定:"undecided"
 活き:"alive"
 死に:"dead"
 白の確定地:"white_territory"
 黒の確定地:"black_territory"
(石のある座標:未定,活き,死にのいずれか
 石のない座標:未定,白の確定地,黒の確定地のいずれか))
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
無条件とは、どんなに手を抜いても死なないこと。


combination_attack
指定した色が連携攻撃によって石を取れる着手を取得する

 引数:
 エラー:
不正な色
 戻値:
連携攻撃手有り:
・座標
連携攻撃手無し: PASS
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
連携攻撃手がどのように返されるか不明


combination_defend
色が連携攻撃によって石を取れる場合、他方の色がその連携攻撃を防御する着手を取得する

 引数:
 エラー:
不正な色
 戻値:
連携防御手有り:
・座標
連携防御手無し: PASS
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
説明からだと攻撃側・防御側どちらの色を指定するのか不明


aa_confirm_safety
atari_atari_confirm_safety()関数を実行する

 引数:
座標
[整数]
 エラー:
不正な着手
 戻値:
success code, if failure also defending move
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
OWLを使用した、連携攻撃に関する関数らしい。(12.2 Combination reading 参照)


genmove_black
黒の最良手を生成し着手する

 引数:
-
 エラー:
-
 戻値:
最良手有り:
・座標
最良手無し: PASS
 ステータス:
廃止されたGTPバージョン1コマンド
 訳注:


genmove_white
白の最良手を生成し着手する

 引数:
-
 エラー:
-
 戻値:
最良手有り:
・座標
最良手無し: PASS
 ステータス:
廃止されたGTPバージョン1コマンド
 訳注:


genmove
指定した色の最良手を生成し着手する

 引数:
 エラー:
不正な色
 戻値:
最良手有り:
・座標
最良手無し: PASS
投了: resign (resignation_allowedが指定されている場合)
 ステータス:
GTPバージョン2標準コマンド
 訳注:


reg_genmove
指定した色の最良手を生成する

 引数:
 エラー:
不正な色
 戻値:
最良手有り:
・座標
最良手無し: PASS
 ステータス:
GTPバージョン2標準コマンド
 訳注:


gg_genmove
指定した色の最良手を生成する

 引数:

[乱数シード]
 エラー:
不正な色
 戻値:
最良手有り:
・座標
最良手無し: PASS
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


restricted_genmove
指定した色の最良手を、指定した許可座標から選択して生成する

 引数:

許可座標リスト
 エラー:
不正な色
不正な座標
座標リスト無し
 戻値:
最良手有り:
・座標
最良手無し: PASS
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


kgs-genmove_cleanup
指定した色の最良手を生成し着手する
(敵の全ての死石が無くなるまでパスしない)

 引数:
 エラー:
不正な色
 戻値:
最良手有り:
・座標
最良手無し: PASS
 ステータス:
KGS独自コマンド
(類似のコマンドがGTPバージョン3で追加されるかも知れない)
 訳注:
KGS: インターネット碁サイトの一つ(http://www.gokgs.com/)


level
着手レベルを設定する

 引数:
整数
 エラー:
引数が正しくない
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


undo
着手を1手戻す

 引数:
-
 エラー:
着手履歴が短すぎる
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


gg-undo
指定した手数分着手を戻す

 引数:
[整数]
 エラー:
着手履歴が短すぎる
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


time_settings
持ち時間を設定する

 引数:
整数(持ち時間)
整数(秒読時間)
整数(秒読回数)
 エラー:
構文エラー
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


time_left
残り時間を報告する

 引数:

残り時間
残り秒読回数
 エラー:
構文エラー
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:
残り時間の報告なのに戻り値がnothingなのが意味不明。引数で秒数を指定してるし。
(ネット碁サーバとの通信用コマンド?)


final_score
終局した対局のスコアを計算する

 引数:
[乱数シード]
 エラー:
-
 戻値:
スコア (SGFフォーマットで)(RE property)
 ステータス:
GTPバージョン2標準コマンド
 訳注:
戻り値はB+0.5(黒0.5目勝ち)などの形式
乱数シードがどう使われるか不明


final_status
終局した対局の指定した座標の最終状態を取得する

 引数:
座標
[乱数シード]
 エラー:
不正な座標
 戻値:
・座標の状態
(活き:"alive"
 死に:"dead"
 セキ:"seki"
 白の確定地:"white_territory"
 黒の確定地:"black_territory"
 ダメ:"dame")
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


final_status_list
終局した対局で特定の最終状態の座標リストを取得する

 引数:
状態
(活き:"alive"
 死に:"dead"
 セキ:"seki"
 白の確定地:"white_territory"
 黒の確定地:"black_territory"
 ダメ:"dame")
[乱数シード]
 エラー:
状態文字列なし
不正な状態文字列
 戻値:
・指定された状態を持つ座標リスト
("alive","dead","seki"の場合、空でない座標が連ごとに改行される)
 ステータス:
GTPバージョン2標準コマンド
(ただし"dame", "white_territory", "black_territory"の指定はGNU Go 独自拡張)
 訳注:


estimate_score
スコアを推定する

 引数:
-
 エラー:
-
 戻値:
・スコアとその上限下限
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
戻値は
B+23.8 (upper bound: -11.9, lower: -35.7)
のような形式で返される


experimental_score
次がどちらの手番かを考慮して、スコアを推定する
(次の手番の着手を生成して、その手の価値を加えるので、瀕死の漣の価値が考慮される)

 引数:
次手番の色
 エラー:
不正な色
 戻値:
・スコア
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
戻値は -11.8 などの形式で返されるが、これがどちらの色から見たスコアなのか不明。


reset_life_node_counter
life nodeの数をリセットする
(このコマンドは廃止され、後方互換のためだけに残されている。)

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
life nodeが何か不明


get_life_node_counter
life nodeの数を取得する
(このコマンドは廃止され、後方互換のためだけに残されている。)

 引数:
-
 エラー:
-
 戻値:
・life nodeの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


reset_owl_node_counter
owl nodeの数をリセットする

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
owl nodeが何を表すか不明


get_owl_node_counter
owl nodeの数を取得する

 引数:
-
 エラー:
-
 戻値:
・owl nodeの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


reset_reading_node_counter
reading nodeの数をリセットする

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
reading nodeが何を表すか不明。読みと関係する?


get_reading_node_counter
reading nodeの数を取得する

 引数:
-
 エラー:
-
 戻値:
・reading nodeの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


reset_trymove_counter
trymoves / tryko の数をリセットする

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
リセットされるのは数のみで、trymove/trykoのスタックはリセットされない。(このコマンド実行後も、popgoで元に戻せる。)


get_trymove_counter
trymoves / tryko の数を取得する

 引数:
-
 エラー:
-
 戻値:
・trymoves / trykoの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


reset_connection_node_counter
connection nodeの数をリセットする

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
connection nodeが何を表すか不明。接続と関係する?


get_connection_node_counter
connection nodeの数を取得する

 引数:
-
 エラー:
-
 戻値:
・connection nodeの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


test_eyeshape
矛盾評価のために眼形をテストする
(Test an eyeshape for inconsistent evaluations)

 引数:
眼形の座標
 エラー:
不正な座標
 戻値:
・失敗レポート(stderrに出力)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
指定する座標の状況によって、例えば以下のような結果が返ってくる。
D2 alive, but almost filled with nakade:
しかし多くの座標で結果が何も返ってこないことが多い。
しかも自分のwin7コマンドプロンプト環境ではレポート出力後、'cygwin': unknown terminal type. などと出力されそのままgnugoが終了する。


analyze_eyegraph
眼形(eye graph)の眼値(eyevalue)と急所を計算する

 引数:
文字列エンコードされた眼形
 エラー:
不正な眼形
解析失敗
 戻値:
・眼値(eyevalue)
・急所
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
引数の与え方が不明。
引数なしでも、座標値を与えても、"0000"が帰ってくるのみ。(test_eyeshapeでレポートが返ってくる座標を与えても同様。)
このコマンド実行後、盤面が破壊される(盤面の一部を除いて、同色の石が配置される)


cputime
CPU経過時間を秒で取得する

 引数:
-
 エラー:
-
 戻値:
・合計CPU経過時間(ユーザー+システム)[秒]
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


showboard
現在の盤面配置を標準出力(stdout)に出力する

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GTPバージョン2標準コマンド
 訳注:


dump_stack
スタックダンプを標準エラー出力(stderror)に出力する

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


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 黒石
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
原文の説明は"initial influence function"を返す、とあるが、"initial"と"function"はつながりが分からないので省略した。
influence:勢力
attenuation:減衰
non_territory情報の戻り値のコード(0〜3)の意味が不明。それ以外の情報も値の意味付けが不明なものが多い。


move_influence
指定した座標に着手した後の、勢力等の情報を取得する

 引数:

座標
情報種別(※initial_influenceコマンドと同様)
 エラー:
-
 戻値:
※initial_influenceコマンドと同様
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
実行結果に、指定した着手が加味されていないように思える。


move_probabilities
着手可能性一覧を取得する(可能性0でないもの)
(この前にgenmoveコマンドが発行されていない場合、このコマンドの結果は意味の無いものである。)

 引数:
-
 エラー:
-
 戻値:
・着手座標
・可能性
(着手ごとに1行)
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
以下のような結果が返る。
C17 0.2501
D17 0.2500
C4 0.2500
C3 0.2499


move_uncertainty
着手の不確定性のビット数を取得する
(この前にgenmoveコマンドが発行されていない場合、このコマンドの結果は意味の無いものである。)

 引数:
-
 エラー:
-
 戻値:
・不確定性のビット数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
着手可能性のある座標(move_probabilities)の数が1つ(2^0)の場合0.0000が、4つ(2^2)の場合2.0000が返る。


followup_influence
フォローアップする勢力等の情報を取得する

 引数:

座標
情報種別(※initial_influenceコマンドと同様)
 エラー:
-
 戻値:
※initial_influenceコマンドと同様
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
followupが何を意味するか不明。着手に伴う勢力の増減を返すのかと思っていたが、結果はそうではなさそうだった。


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つの連の情報のみが返される。
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
worm=string=連


worm_stones
指定した連の石リストを取得する

 引数:
座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


worm_cutstone
指定した連のcutstoneの数を取得する

 引数:
座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・cutstoneの数
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
cutstoneが何を表すか不明。
他の連との断点の数ではなさそう。


dragon_data
漣の情報を取得する

 引数:
[座標]
 エラー:
-
 戻値:
※worm_dataコマンドと同様
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


dragon_stones
指定した漣の石リストを取得する

 引数:
座標
 エラー:
不正な座標
座標に石が無い
 戻値:
・座標リスト
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


eye_data
指定した座標の眼情報を取得する

 引数:

座標
 エラー:
-
 戻値:
・眼情報と値
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
眼情報は下記のようなフォーマット

origin E4
color white
esize 20
msize 0
value 2222
marginal 0
neighbors 3
marginal_neighbors 0


half_eye_data
指定した座標の半眼情報を取得する

 引数:
座標
 エラー:
-
 戻値:
・半眼情報と値
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
眼情報は下記のようなフォーマット

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ツリーのメモリへの格納を開始する
(警告:このコマンドを使おうとする場合、何をしようとしているか理解したほうがよい。)

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
意味深な警告の真意は、このコマンドはgenmoveなどでCPUが考慮する際に読んだ着手の全てとその思考過程の全てがSGFツリーになるということ。
実際、互先から5手だけgenmoveした結果は膨大な着手とコメントが記載された5.8MBのSGFファイルとなった。


finish_sgftrace
着手のSGFツリーのメモリへの格納を終了し、ファイルに書き出す
(警告:このコマンドを使おうとする場合、何をしようとしているか理解したほうがよい。)

 引数:
SGFファイル名
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
start_sgftrace同様


printsgf
現在の盤面配置を指定したファイル名の静的なSGFファイルに書き出す
(ファイル名指定無し or "-"の場合は標準出力に出力する)

 引数:
[SGFファイル名]
 エラー:
-
 戻値:
ファイル名指定有 : -
ファイル名指定無
・SGFデータ
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
静的なSGFとは、全ての黒石・白石の座標をAB[],AW[]で配置だけ表現したもの。(着手順は表現されない。)


tune_move_ordering
攻め合いの読みにおける着手の順序に関するパラメータ(MOVE_ORDERING_PARAMETERS)を調整する

 引数:
整数
 エラー:
不正な引数
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


echo
指定された文字列を出力する

 引数:
文字列
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


echo_err
指定された文字列を標準出力(stdout)と標準エラー出力(stderr)に出力する

 引数:
文字列
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


help
利用可能な全てのコマンドのリストを取得する

 引数:
-
 エラー:
-
 戻値:
・コマンド
(コマンドごとに1行)
 ステータス:
GTPバージョン2標準コマンド
 訳注:
GTP2標準とあるが、GTPではhelpコマンドは定義されておらず、"list_commands"コマンドとして定義されている。(動作定義は一致)
ドキュメントに記載は無いが、GNUGo3.8ではlist_commandsコマンドも動作するようである。


known_command
指定したコマンドが利用可能か調査する

 引数:
コマンド名
 エラー:
-
 戻値:
コマンドが存在する : "true"
コマンドが存在しない : "false"
 ステータス:
GTPバージョン2標準コマンド
 訳注:


report_uncertainty
owl_attack・owl_defendからの不確定性レポートのon/offを切り替える

 引数:
"on"もしくは"off"
 エラー:
不正な引数
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


get_random_seed
乱数シードを取得する

 引数:
-
 エラー:
-
 戻値:
乱数シード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


set_random_seed
乱数シードを指定する

 引数:
乱数シード
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


advance_random_seed
指定したゲーム数分、乱数シードを進める

 引数:
ゲーム数
 エラー:
不正な引数
 戻値:
新しい乱数シード
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


is_surrounded
指定した漣が包囲されているか判定する

 引数:
漣の座標
 エラー:
不正な座標
座標に石が無い
 戻値:
包囲されている : 1
弱く包囲されている : 2
包囲されていない : 0
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


does_surround
指定した座標への着手が指定した漣を包囲するか判定する

 引数:
着手の座標
漣の座標
 エラー:
不正な座標
漣の座標に石が無い
着手の座標が空でない
 戻値:
包囲する着手である : 1
包囲する着手でない : 0
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


surround_map
指定した漣の包囲マップの値を取得する

 引数:
漣の座標
マップ値を取得する座標
 エラー:
不正な座標
漣の座標に石が無い
 戻値:
漣が包囲されている
・指定した座標の包囲マップの値
漣が包囲されていない : -1
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


set_search_diamond
探索を制限し、探索ダイヤモンドを設立する
(limit search, and establish a search diamond)

 引数:
座標
 エラー:
不正な座標
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


reset_search_mask
盤面上の全ての探索制限を解除する

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


limit_search
グローバル変数 limit_searchの値をセットする

 引数:
整数
 エラー:
不正な引数
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
limit_search変数が何を表すかは不明


set_search_limit
指定した座標を探索制限の対象とする

 引数:
座標
 エラー:
不正な座標
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:


draw_search_area
探索領域を取得する(標準エラー出力(stderr)に出力する)

 引数:
-
 エラー:
-
 戻値:
-
 ステータス:
GNU Go 独自拡張コマンド
 訳注:
結果が何も返ってこない上、自分のwin7コマンドプロンプト環境では、'cygwin': unknown terminal type. などと出力されそのままgnugoが終了する。




訳注:ここにExcelファイル置いておきますね。
-----------------------
てかGTPとか大分前からあるのに、和訳が無いのが不思議だ。
みんな普通に英文ですらっと理解できるからってことなのか?
将棋の次はコンピュータ囲碁が来るで。
こんな怪しいブログの和訳でよろしければど〜ぞ。

Special thanks to
マツナガ's 囲碁コーナー 記事:囲碁の英語
英単語が対応する囲碁用語を確認させていただきました。
(ladder = シチョウ とか)
http://homepage1.nifty.com/maznaga/IGO/mag/mag060123.htm

posted by curren at 10:24| Comment(0) | TrackBack(0) | 日記 - 一般 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。