文書の過去の版を表示しています。
SFENによる盤面と指し手の表記について
USIで使用される、SFEN) %20Shogi Forsyth-Edwards Notation)表記法による局面と指し手の表記を解説します。この表記方法は、後述するpositionコマンドやbestmoveコマンド、さらにinfoコマンドなどで使用されます。
駒の種類は、それぞれ1文字のアルファベットで表され、先手の駒は大文字、後手の駒は小文字になります。
先手の玉:K、後手の玉:k (Kingの頭文字)
先手の飛車:R、後手の飛車:r (Rookの頭文字)
先手の角:B、後手の角:b (Bishopの頭文字)
先手の金:G、後手の金:g (Goldの頭文字)
先手の銀:S、後手の銀:s (Silverの頭文字)
先手の桂馬:N、後手の桂馬:n (kNightより)
先手の香車:L、後手の香車:l (Lanceの頭文字)
先手の歩:P、後手の歩:p (Pawnの頭文字)
駒が成った状態を表記するには、駒の文字の前に+をつけます。先手のと金は+Pとなります。
盤面を表記するとき、1段目の左側(9筋側)から駒の種類を書いていきます。空白の升は、空白が続く個数の数字を書きます。
平手初期局面の場合、1段目は、左から後手の駒が香桂銀金玉金銀桂香と並んでいるので、lnsgkgsnlとなります。2段目は、空白が1升、後手の飛車、空白が5升、後手の角、空白が1升というように並んでいるので、1r5b1となります。
各段がそのように表記され、1段目から9段目まで、それぞれの段の表記を/(半角スラッシュ)でつなげて書くと、盤面の表記になります。平手初期局面であれば
lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL
ということになります。
しかし局面表記にはこれだけでは不十分で、次の手番と、持ち駒についても表記する必要があります。
次の手番については、先手番ならb、後手番ならwと表記します。(Black、Whiteの頭文字)
持ち駒については、先手後手のそれぞれの持ち駒の種類と、その枚数を表記します。枚数は、2枚以上であれば、駒の種類の前にその数字を表記します。先手側が銀1枚歩2枚、後手側が角1枚歩3枚であれば、S2Pb3pと表記されます。どちらも持ち駒がないときは-(半角ハイフン)を表記します。
さらにSFENの原案によると、次の手が何手目かという数字も表記する必要があります。ただし、任意局面から開始する場合など、次の手が何手目かという情報に意味がないので、これが必要なものかどうかよくわかりません。将棋所の場合、この数字は必ず1にしています。
以上によりSFENによる任意局面の表記方法が定義されます。香落ち初期局面であれば、
lnsgkgsn1/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1
というように表記されます。
次に、指し手の表記について解説します。筋に関しては1から9までの数字で表記され、段に関してはaからiまでのアルファベット(1段目がa、2段目がb、・・・、9段目がi)というように表記されます。位置の表記は、この2つを組み合わせます。5一なら5a、1九なら1iとなります。
そして、指し手に関しては、駒の移動元の位置と移動先の位置を並べて書きます。7七の駒が7六に移動したのであれば、7g7fと表記します。(駒の種類を表記する必要はありません。)
駒が成るときは、最後に+を追加します。8八の駒が2二に移動して成るなら8h2b+と表記します。
持ち駒を打つときは、最初に駒の種類を大文字で書き、それに*を追加し、さらに打った場所を追加します。金を5二に打つ場合はG*5bとなります
