5五将棋用棋譜フォーマット(MSKフォーマット)


5五将棋用棋譜フォーマットについて

5五将棋用棋譜フォーマットは、5五将棋におけるコンピュータ上での棋譜のやりとりを効率よく行う為の
記述方法です。
本将棋用に作られたプログラムからの移行の便を考慮して、CSA形式の棋譜ファイルフォーマットと共通
の記述が使えるようになっています。
CSA形式の棋譜フォーマットをご存じの方は、そちらをそのまま5五将棋のサイズで適用しなおしてくださ
れば対応できるようになっています。

基本的な要素

エンコード

ファイルはテキスト形式で扱い、文字エンコードや改行コードは出力するマシンの標準に合わせて構いません。

情報の単位

1行が1つの単位となります。

ただし、,(カンマ)で終わる行は次の行に続くものとして扱います。

駒の略称について

駒の種類を記述する必要があるとき、アルファベット大文字2文字で次のように略します。

FU
KA
HI
GI
KI
OU
TO
UM
RY
成銀 NG

駒の位置について

位置の情報を記述する必要があるとき、数字2桁で次のように表します。

例:2四の位置を表現するとき→24

なお、盤面は右上が11、左上が51、右下が15、左下が55です。

00は駒台を表します。

先手後手符号について

先手か後手かを明示する場合、+と-の記号を使います。

先手が+で、後手が-となります。

コメント

'(アポストロフィー)で始まる行はコメントとして無視します

ファイルの構造

5五将棋用棋譜フォーマットは以下の要素を持ちます。

  1. バージョン情報
  2. 対局情報
  3. 初期配置情報
  4. 手番情報
  5. 指し手情報

このうち、バージョン情報と指し手情報以外は省略出来ます。

順序を変えることは出来ません。

バージョン情報

その棋譜ファイルがどのバージョンの棋譜フォーマットに従うかを記述します。

この文章のバージョンは、「V2.1-55」です。

コメントを除く最初の行に次のように記述して下さい。

V2.1-55

対局情報

対局に関する情報を記述します。

この項目は省略することが出来ます。

この項目は、次で示す属性と値の組を、任意の個数・好きな順番で記述します。

この項目のデータは、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-OUP2 *  *  *  * -FUP3 *  *  *  *  * P4+FU *  *  *  * P5+OU+KI+GI+KA+HI

Pに続けて行番号を書くと、その行の駒を一括して配置出来ます。

例の場合、標準の初期は位置と同じになります。

駒は3文字で表します。最初の一文字が先手後手符号、次の2文字が駒の略称となります。一文字目が+でも-でもない場合は空白として扱います。

単独表現
P-22GI

駒を1つ1つ置く場合、Pに続けて、先手後手符号・位置・駒の略称を記述します。

P+00FU

駒台に駒を置くことも出来ます。

P-00AL

ALを駒の略称にすると、今使っていない全ての駒を表します。

手番情報

+
-

開始時点でどちらの手番なのかを記述します。

この情報は省略出来ます。

先手後手符号を記述して下さい。

指し手情報

実際に指された手を記述します。

手の情報を、指された順に上から記述していきます。

+3544GI

指し手は、先手後手符号・移動前の位置・移動後の位置・移動後の駒の種類で表します。

例は、先手が35にあった銀を44に動かしたことになります。

駒が成るときは、移動後の駒を成った後の駒にすれば表せます。

-4152KAT15

駒の移動の情報の次の行に、Tで始まる行を記述すると、直前の手の消費時間を秒単位で記述出来ます。

例は、後手が41の角を52に動かし、その手に15秒消費したことになります。

特殊な指し手

移動情報の代わりに、次のような特殊な指し手を記述することが出来ます。

投了 %TORYO
中断 %CHUDAN
千日手 %SENNICHITE
時間切れ %TIME_UP (手番側の時間切れ)
反則負け %ILLEGAL_MOVE (手番側の反則負け、反則の内容はコメントで記録可能)
持将棋 %JISHOGI
(入玉で)勝ちの宣言 %KACHI
(入玉で)引き分けの宣言 %HIKIWAKE
待った %MATTA
詰み %TSUMI
不詰 %FUZUMI
エラー %ERROR

サンプル

'ここからサンプル
'バージョン情報
V2.1-55
'対局情報
N+SUGATA
N-NAKASHIZU
$SITE:SHOGI_DOJO
'初期配置
PI
+
'棋譜
+3534GI
T5
-3122GI
T6
+2514HI
T3
-4114KA
T10
+1514HI
T5
%CHUDAN

'ここまでサンプル