2009年12月3日木曜日

棋譜XMLの仕様策定に向けて

前回のエントリーで「どうぶつしょうぎ」は普通の将棋のように棋譜を書いても十分理解できる、という事が分かりました(追記の部分参照)。 それでも棋譜XMLを作る意味はあると感じたため、さらに進めて行こうと思います。

色々と思案をしていたところ、この棋譜XMLを拡張すれば将棋以外の様々な盤ゲームを記録する事が出来るのではないか、と感じました。

以下にその拡張した KifuXML を書いておきます。

<?xml version="1.0" encoding="UTF-8"?>
<match>
 <environment>
  <sente>chrome</sente>
  <gote>fx</gote>
  <winner>gote</winner>
  <start>1259739271</start>
  <end>1259739271</end>
  <finish_type>toryo</finish_type>
  <match_type>lion</match_type>
 </environment>
 <kifu>
  <te te_id="1" which="sente" from="b3" to="b2" koma="p" touch="1259739311"/>
  <te te_id="2" which="gote" from="c1" to="b2" koma="e" touch="1259739337"/>
 </kifu>
</match>

match=試合という意味 environmenの中に様々な対局情報を含めていく。 対局の手の履歴と対局情報を分離して、かつ一つのデータにすることで、例えば試合会場などもここに記述する事が可能になる。 match_typeに試合形式を記述すれば対局手段が違うものの場合などにも対応できる。

今後は kifu という部分を kif にする予定、こちらの方が外国の人にも発音しやすいので。 そして意味はそのまま棋譜。

最後に微妙に日本語と英語が混じっているのは全く意味が分からない、なんて事になるのでこの点は改善したいところ。 それとsente,goteの部分はplayerという親要素の子要素にしようと思っている。

現在公開中のどうぶつしょうぎの棋譜再現に、この暫定版KifuXMLを適用して試験しています。

1 件のコメント: