SGF棋譜データ
SGFはSmart Game Formatの略でコンピュータ用の棋譜データに最も多く用いられている書式です。
SGFにはFF[1]〜FF[5]までのバージョンがあり、インターネット囲碁サイトではFF[4]が広く使われています。
**abcdefghijklm**
a┌┬┬┬┬┬┬┬┬┬┬┬┐a
b├┼┼┼┼┼┼┼┼┼┼┼┤b
c├┼┼○┼┼┼┼┼┼┼┼┤c
d├┼┼・┼┼┼┼┼・●┼┤d
e├┼┼┼┼┼┼┼┼┼┼┼┤e
f├┼┼┼┼┼┼┼┼┼┼┼┤f
g├┼┼┼┼┼┼┼┼┼┼┼┤g
h├┼┼┼┼┼┼┼┼┼┼┼┤h
i├┼┼┼┼┼┼┼┼┼┼┼┤i
j├┼┼・┼┼┼┼┼・┼┼┤j
k├┼┼┼┼┼┼┼┼┼┼┼┤k
l├┼┼┼┼┼┼┼┼┼┼┼┤l
m└┴┴┴┴┴┴┴┴┴┴┴┘m
**abcdefghijklm**
SGFでは碁盤の座標は左上角をaaにした小文字アルファベットで記録します。
黒石の位置 ⇒ B[kd]
白石の位置 ⇒ W[cd]
パスはttと記入します。
黒パス ⇒ B[tt]
白パス ⇒ W[tt]
SGFは、囲碁の棋譜データは下記書式で記録します。
(;GM[1]
対局情報;
着手情報;
:
:
:
着手情報;
)
先頭の (; は、データの記録開始宣言です。
(;に続いて記録されているGM[1]は、データが囲碁の棋譜であることを宣言する記号です。
対局情報は、対局者名などを所定の記号(プロパティ)の後ろに[]で囲い列挙します。
着手情報は、着手位置プロパティ(黒番の場合はB[]白番の場合はW[])を記してからその着手に関する各種プロパティを記します。
対局情報と着手、着手と着手の区切りは半角 ; で記し、; で区切られた範囲をノードといいます。
変化手順は()で囲って着手情報を列記します。
変化手順の記録は入れ子にすることができます。
SGFは、テキストデータですから棋譜ソフトがない場合でも、面倒さえ厭わなければワープロやテキストエディタなどテキストファイルを読めるソフトでSGFファイルを開いて次の手順で棋譜を並べることができます。
- 最初の半角 ( までは無視する。
- 半角 ) が出現したら階層を1ランク下げる。(0階層なら終了)
- 半角 ( が出現したら階層を1ランク上げる。
- 半角 ; を見つけたらプロパティの確認を行う。
- プロパティが確認できから半角 [ までは無視する。
- 半角[ が出現したら半角] が出現するまでプロパティの引数として取り込む。
ただし半角 \ の次の文字は無条件で取り込む
2〜4に該当するまで繰り返す。
< - 2⇒6を繰り返す。
SGFのプロパティには下記のようなものがあります。
- 対局情報プロパティ
-
- AN[評者名]
- AP[アプリケーション名]
- BH[黒のアゲハマに追加するハマ数](石葉2用)
- BR[黒の対局者の棋力]
- BT[黒のチーム名]
- CA[文字コード]
- CP[著作権者名]
- DT[yyyy-mm-dd] (対局日yyyy年mm月dd日)
- EV[大会名]
- GC[対局に対するコメント]
- GN[対局名]
- HA[置石数] (互先の場合は0)
- KM[コミ数] (逆コミの場合は負号を付ける)
- KO[コミ数] (逆コミの場合は負号を付ける)(日本棋院独自仕様)
- NE[W] (初手が白)(石葉2用)
- PB[黒番対局者名]
- PC[対局場所名]
- PW[白番対局者名]
- RD[yyyy/mm/dd](日本棋院独自仕様)
- RE[対局結果]
- 持碁 ⇒ 0
- 黒n目勝ち ⇒ B+n、白x目勝ち ⇒ W+n
- 黒中押勝 ⇒ B+R、白中押勝 ⇒ W+R
- 黒時間切れ負け ⇒ W+T、白時間切れ負け ⇒ B+T
- RO[n] (トーナメントや番碁の第n回戦)
- RU[ルール名]
- SO[引用元名](石葉2では棋譜名)
- SZ[碁盤サイズ]
- TE[大会名](日本棋院独自仕様)
- TM[持ち時間] (単位:秒)
- US[記録者名]
- WH[白のアゲハマに追加するハマ数](石葉2用)
- WR[白の対局者の棋力]
- WT[白のチーム名]
- 着手情報プロパティ
-
- AB[xy] (座標xyに黒配石)
- AE[xy] (座標xyの石除去)
- AW[xy] (座標xyに白配石)
- B[xy] (座標xyに黒着手)
- BL[t] (黒の残り時間t秒)
- C[コメント]
- CR[xy] (座標xyに○マーク)
- HL[リンク先]リンク先の着手IDまたはアドレス(石葉2用)
- LB[xy,m] (座標xyに文字mをマーク)
- LO[xy] (座標xyに◇マーク)
- MA[xy] (座標xyに×マーク)
- MK[xy,m] (座標xyに文字mをマーク)(石葉2用)
- PL[W] (初手が白)
- RT[xy] (座標xyに▽マーク)
- SL[xy] (座標xyに■マーク)
- SQ[xy] (座標xyに□マーク)
- ST[xy] (座標xyに☆マーク)
- TB[xy] (座標xyの黒石をアゲハマ)
- TL[t,l] (着手消費時間t秒、ネットロスl秒)
- TR[xy] (座標xyに△マーク)
- TW[xy] (座標xyの白石をアゲハマ)
- W[xy] (座標xyに白着手)
- WL[t] (白の残り時間t秒)