五5将棋用棋譜フォーマット
五5将棋用棋譜フォーマットについて
五5将棋用棋譜フォーマット(MSK形式Mini-Shogi Kifu)は、5五将棋におけるコンピュータ上での棋譜のやりとりを効率よく行う為の記述方法です。
本将棋用に作られたプログラムからの移行の便を考慮して、CSA形式の棋譜ファイルフォーマットとほぼ共通の記述が使えるようになっています。
CSA形式の棋譜フォーマットをご存じの方は、まずそちらを五5将棋のサイズで適用しなおしてください。
その後、本大会で必要な事項を付け足していくことをお勧めします。
基本的な要素
エンコード
ファイルはテキスト形式で扱い、文字エンコードや改行コードは出力するマシンの標準に合わせて構いません。
拡張子は.mskを推奨します。
情報の単位
1行が1つの単位となります。
ただし、,(カンマ)で終わる行は次の行に続くものとして扱います。
駒の略称について
駒の種類を記述する必要があるとき、アルファベット大文字2文字で次のように略します。
| 歩 | FU |
| 角 | KA |
| 飛 | HI |
| 銀 | GI |
| 金 | KI |
| 王 | OU |
| と | TO |
| 馬 | UM |
| 竜 | RY |
| 成銀 | NG |
駒の位置について
位置の情報を記述する必要があるとき、数字2桁で次のように表します。
例:2四の位置を表現するとき→24
なお、盤面は右上が11、左上が51、右下が15、左下が55です。
00は駒台を表します。
先手後手符号について
先手か後手かを明示する場合、+と-の記号を使います。
先手が+で、後手が-となります。
コメント
'(アポストロフィー)で始まる行はコメントとして無視します
MSKフォーマットの構造
MSKフォーマットは以下の要素を持ちます。
※赤字は今大会での必須項目です。
- バージョン情報
- 対局情報(一部必須項目)
- 初期配置情報
- 手番情報
- 指し手情報(棋譜情報)
・対局者名
・棋戦名
・対局場所
・対局開始日時
・持ち時間
このうち、バージョン情報と指し手情報以外は省略出来ます。
順序を変えることは出来ません。
バージョン情報(必須項目)
その棋譜ファイルがどのバージョンの棋譜フォーマットに従うかを記述します。
この文章のバージョンは、「V1-MSK」です。
コメントを除く最初の行に次のように記述して下さい。
V1-MSK
対局情報(一部必須項目)
対局に関する情報を記述します。
この項目は省略することが出来ます。
この項目は、次で示す属性と値の組を、任意の個数・好きな順番で記述します。
この項目のデータは、Nか$で始まります。
対局者名(必須項目)
N+(文字列)
N-(文字列)
N+が先手の名前、N-が後手の名前を記述します。
棋戦名
$EVENT:(文字列)
大会名などを記述します。
対局場所
$SITE:(文字列)
対局場所を示す文字列を記述します。
対局開始日時
$START_TIME:YYYY/MM/DD hh:mm:ss
対局が始まった時刻を記述します。
YYYYに西暦年を、MMに月の数字を、DDに日付を記述します。
hh:mm:ssに、24時間式での時間を記述します。時間は省略出来ます。
対局終了日時
$END_TIME:YYYY/MM/DD hh:mm:ss
対局が終了した時刻を記述します。
記述法は対局開始日時と同じです。
持ち時間
$TIME_LIMIT:hh:mm+ss
持ち時間を記述します。
hh:mmに、持ち時間が何時間何分なのかを記述します。
+ssに、秒読みが何秒あるのかを記述します。
開始局面
棋譜ファイルの開始時点での局面を記述します。今大会では使用しません。
この項目は省略することができます。その場合、標準の初期配置(PI)であるものとします。
この項目のデータは全てPで始まります。
初期配置の記述にはいくつかの方法があります。
標準初期配置+駒落ち
PI
PIとだけ記述すると、標準の初期配置がそのまま使われます。
PI15HI14KA
PIの後に位置・駒の種類の組み合わせを記述することによって、指定された駒を落とします。
例の場合、一5の飛車と一4の角を落として開始します。
一括表現
P1-HI-KA-GI-KI-OU P2 * * * * -FU P3 * * * * * P4+FU * * * * P5+OU+KI+GI+KA+HI
Pに続けて行番号を書くと、その行の駒を一括して配置出来ます。
例の場合、標準の初期は位置と同じになります。
駒は3文字で表します。最初の一文字が先手後手符号、次の2文字が駒の略称となります。一文字目が+でも-でもない場合は空白として扱います。
単独表現
P-22GI
駒を1つ1つ置く場合、Pに続けて、先手後手符号・位置・駒の略称を記述します。
P+00FU
駒台に駒を置くことも出来ます。
P-00AL
ALを駒の略称にすると、今使っていない全ての駒を表します。
手番情報
+
-
開始時点でどちらの手番なのかを記述します。
この情報は省略出来ます。
先手後手符号を記述して下さい。
指し手情報(必須項目)
実際に指された手を記述します。
手の情報を、指された順に上から記述していきます。
+3544GI
指し手は、先手後手符号・移動前の位置・移動後の位置・移動後の駒の種類で表します。
例は、先手が35にあった銀を44に動かしたことになります。
持ち駒を指すときは、移動前の位置を 00 にして表します。
+0033KI
例は、先手が33に持ち駒 金 を打ったことになります。
駒が成るときは、移動後の駒を成った後の駒にすれば表せます。
-4152KA T15
駒の移動の情報の次の行に、Tで始まる行を記述すると、直前の手の消費時間を秒単位で記述出来ます。
例は、後手が41の角を52に動かし、その手に15秒消費したことになります。
特殊な指し手
移動情報の代わりに、次のような特殊な指し手を記述することが出来ます。
| 投了 | %TORYO |
| 中断 | %CHUDAN |
| 千日手 | %SENNICHITE |
| 時間切れ | %TIME_UP (手番側の時間切れ) |
| 反則負け | %ILLEGAL_MOVE (手番側の反則負け、反則の内容はコメントで記録可能) |
| 持将棋 | %JISHOGI |
| (入玉で)勝ちの宣言 | %KACHI |
| (入玉で)引き分けの宣言 | %HIKIWAKE |
| 待った | %MATTA |
| 詰み | %TSUMI |
| 不詰 | %FUZUMI |
| エラー | %ERROR |
サンプル
’ここからサンプル ’バージョン情報 V1-MSK ’対局情報 N+SUGATA N-NAKASHIZU $SITE:SHOGI_DOJO ’初期配置 PI + ’棋譜 +3534GI T5 -3122GI T6 +2514HI T3 -4114KA T10 +1514HI T5 %CHUDAN ’ここまでサンプル