JavaScript: SGF ファイルの処理
- 2023/05 データフォーマット: SGF
SGF について
SGF は囲碁で使われる棋譜のデータファイルのフォーマットです。 五目並べ、オセロ、将棋、チェスなどの棋譜のデータにも使用することができます。 SGF ファイルの中身はテキストで記述されています。
SGF テキストをパースする
JavaScript で SGF テキストの文字列処理を行うサンプルです。
- TestJS_SGFNode2022.html
SGF のツリーデータを作るサンプル。 - TestJS_SGFParse2022_1.html
SGF のパース処理・その1。SGF テキストを区切り文字で分割する。 - TestJS_SGFParse2022_2.html
SGF のパース処理・その2。SGF テキストをパースして SGFNode のツリーデータにする。 - lib/sgf.js
上のサンプルの JavaScript を1つにまとめたものです。
SGF データの変換 (2023/06)
囲碁, 連珠, オセロなどの SGF データの変換です。
JavaScript: GameBoard ノートアプリ
にも SGF の変換機能を付けています。
- TestJS_SGF_removeProperty01.html
SGF テキストから不要なプロパティを削除する。 - TestJS_SGF_transform01.html
囲碁, 連珠, オセロの SGF データの座標変換。 盤面の回転や反転や平行移動などの変換です。 - TestJS_SGF_BoardToTree01.html
手番号付きの盤面の SGF データを手の SGF ツリーに変換します。
SGF オブジェクトを JSON で保存する (2023/06)
将棋やチェスなど SGF ファイルが使われていない分野で
SGF ツリーデータを扱う場合は、
わざわざ SGF テキストのデータファイルを使わず、
SGF オブジェクトをそのまま JSON テキストにした方が楽です。
上のサンプルのようなパーサーや SGF 出力の処理は不要になります。
JavaScript: JSON シリアライズ
- TestJS_SGF2JSON.html
SGF テキストを JSON に変換する。 - TestJS_JSON2SGF.html
JSON を SGF テキストに変換する。
囲碁の SGF も JSON テキストで読み書きすることもできます。
近年は専用の書式をもつデータフォーマットをわざわざ発明しません。
XML も使いません。
データフォーマット: JSON と XML の比較
SGF データをツリー表示する
TestJS_SGF_TreeView2021.htmlSGF をパースして HTML の ul, li タグのツリーで表示する。
JavaScript: SGFツリービューのサンプル
JavaScript: ツリー構造のデータを扱う (3)