テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(scala report) SGFライブラリを作ります

SGF(Smart Game Format)は, あらゆるゲームの棋譜を表現することを目的とした汎用的なフォーマットです. 実際には囲碁ユースケースがほとんどですが, 原理的には他の言語でも利用することが出来ます.

最近ずっと考えている自動終局アルゴリズムがどうもうまく行かないことがわかったので, 対戦はひとまず諦めて, まずは棋譜ビューアを作ることを目標にします. 対戦の良い踏み台になるでしょう.

SGFの仕様はBNFまで含めてきちんと書かれているので, parser combinatorを使って簡単に実装することが出来そうです.

SGF file format FF[4]

実はHaskellOCamlではSGFライブラリがすでに作られているようです(どの程度使えるのか, 使われているのかは不明です)が, Scalaのはないので, 作ってみようという気になりました. まずは適当に読み込めるところを目指して, デザインの細かい部分はあとで考える作戦にします.

Scalaのparser combinatorは簡単そうです.

Learn by Example: Scala Parser Combinators | Code