HJJ GO の棋譜を AI で解析する

HJJ GO の SGF ファイルの問題

HJJ GO という台湾発の囲碁アプリがあります。動画での講義やレベル別の AI との対局でステップごとに囲碁を学んで成長していくアプリでとても良いアプリだと思います。

さて、 HJJ GO には対局後の AI 解析機能もあるのですが、解析結果が出るまで時間がかかったり、あるいは自分の慣れているアプリを利用して解析したいということがありますが、ダウンロードした棋譜(SGF ファイル)はそのまま AI 解析にかけてもコミやルール設定が行われていないので、解析すると特にコミのずれが問題になります。解析している AI によってルール設定方法がいろいろありますが、基本的には SGF ファイルに直接書き込むのが一番良いです。

ただし、アプリによっては SGF に書き込んだコミやルールを解釈してくれない場合があります。その場合は各々のアプリにしたがうと良いでしょう。

SGF ファイル

SGF ファイルはテキストファイルなので、実はメモ帳などで編集することができます。 HJJ GO からダウンロードした SGF ファイルをメモ帳で開くと、以下のようになっています。

(;CA[big5]SZ[19];B[qc];W[cd];B[pq];W[qo]...)

括弧で囲まれてセミコロン(;)区切りのファイルであることが分かると思います。見やすくすると以下のようになります。

(
; CA[big5] SZ[19]
; B[qc]
; W[cd]
; B[pq]
; W[qo]
...
)

B[] や W[] はそれぞれ黒(black)と白(white)の着手です。 [] の中身が打った場所を示していて、左から a-s、上から a-s という座標が振られています。つまり B[qc] であれば、黒が左から 17 番目(q が 17 番目のアルファベット)、上から 3 番目(c が 3 番目のアルファベット)に打ったということを表しています。

さて、 2 行目以降の B[] や W[] が着手を表していることがわかりましたが、最初の行に CA[] や SZ[] といった着手とは異なるものがあることが分かると思います。実はこれは SGF ファイルの設定を表しています。

勘の良い方であれば、ここにコミやルールに関する設定を記述すれば良いのではないかと気が付くかもしれません。実はその通りで、ここにコミやルールに関する設定を記述すればよいのです。コミは KM[]、ルールは RU[] という設定を追加すると、 SGF ファイルを読み込んだ時にコミやルールが読み込まれます。

(
; CA[big5] SZ[19] KM[7.5] RU[Chinese]
; B[qc]
; W[cd]
; B[pq]
; W[qo]
...
)

KM[7.5] はコミが 7.5 目であること、 RU[Chinese] は中国ルールであることを示します。

ちなみに XX[] といった着手や設定に関する記述部分のことを SGF ではプロパティと言います。 SGF ではプロパティの外側のスペース(改行含む)は無視されますので、見づらい場合は適宜スペースや改行を入れて見やすくしましょう。

おまけ

その他の設定用のプロパティをいくつか紹介します。すべては紹介しきれないので、興味があれば調べてみてください。

SGF ファイルのプロパティ(一例)
プロパティ値の形式説明備考
GM整数ゲームの種類。囲碁は 1 を指定する。game
SZ整数ボードのサイズ。 19 路盤なら 19、 9 路盤なら 9 など。size
CA文字列UTF-8 などの文字コードを指定する。文字化け防止。character set
DT文字列対局日。通常は DT[2026-06-27] のように書くが、複数日の場合や詳細日付が不明な場合などコロン区切りで DT[2026:春] や DT[:昔] のように書くことも。date
PL文字列対局場所。place
EV文字列イベント名。大会や棋戦など。event
HA整数置き石数。 2 子局なら 2 とする。handicap
KM数値コミ数。 6.5 など。komi
RU文字列ルール。日本ルールなら Japanese など。rule set
RE文字列対局結果。通常は B+R や W+3.5 など。 B/R は黒・白の勝者側の色、 R は中押し、 3.5 は目差など。その他 B+T(時間切れ)、 W+F(不戦勝や反則)、 jigo(持碁)、 Void(無効試合)などいろいろある。result
PB/PW文字列黒・白それぞれの対局者名。player black/white
BR/WR文字列黒・白それぞれの棋力。数字の後ろに k(級)、 d(段)、 p(プロ段)のいずれかを記載。 1k なら 1 級、 5d なら五段、 9p ならプロ九段。black/white rank

0 件のコメント

コメントを投稿するにはログインしてください。

まだコメントはありません。