はじめに
fmzaでフェアリー詰将棋を検討すると、「12歩打 21玉<11 11歩成<12」のような形式で手順が出力されます。
着手した駒の移動元が記載されていたり、駒打ちは一律で「打」が付いていたりします。このような表記は、機械が確実に棋譜を解釈するのに役立ちますが、人間が読むには少し冗長です。
人間にとっては下記の表記の方が読みやすいと思います。
4手で改行し、移動元の情報を削除し、必要なときにだけ「打」を付けています。
手数が短ければ1手ずつ表記を直しても大変ではないですが、長手数の場合に1手ずつ直すのはあまりに大変で、ミスも発生しそうです。
FmView3とテキストエディタを使用すれば、fmzaが出力した手順を一括で整形することができます。
概要
フェアリー詰将棋の鑑賞ソフトであるFmView3と、サクラエディタなどのテキストエディタを使用します。
手順は下記の通りです。
- fmzaの出力結果をFmView3で開き、fmoファイルで保存する
→棋譜から移動元の情報が削除され、必要なときだけ「打」が付く - 1で保存したファイルをサクラエディタで開き、以下の順で置換を行って1行4手にする
- 改行を半角スペースに置換
- ([^ ]+ )([^ ]+ )([^ ]+ )([^ ]+ )を$1$2$3$4\r\nに置換
- 行末の半角スペースを置換で削除
- 必要ならば、着手の区切りを半角スペースから「、」に変える
詳細
まずは、fmzaの出力結果をFmView3で開きます。
「名前を付けて保存(Ctrl+S)」で、適当な名前を付けて保存します。
このとき、ファイルの種類はfm出力ファイルにしてください。
このファイルをサクラエディタで開いてみると、棋譜がある程度整形されたのが分かります。
棋譜以外は邪魔になるので、削除するか、棋譜だけをコピーして新しいシートに貼り付けます。
ここからはサクラエディタの置換機能を使用します。
「Ctrl+R」を押下するか、「メニューバー>検索>置換」を選びます。
まずは、改行を半角スペースに置換します。
置換前に「\r\n」、置換後に「 」を入力します。また、正規表現にチェックを入れてください。
「すべて置換」をクリックすると、棋譜が1行になります。
1行につき4手になるように整形したい場合、以下のように置換します。
置換前:([^ ]+ )([^ ]+ )([^ ]+ )([^ ]+ )
置換後:$1$2$3$4\r\n
「すべて置換」をクリックすると、1行4手になります。
下図はサクラエディタの設定のため黄色でハイライトされていますが、気にしないで大丈夫です。
もし1行6手にしたい場合は代わりに下記のように置換してください。
置換前:([^ ]+ )([^ ]+ )([^ ]+ )([^ ]+ )([^ ]+ )([^ ]+ )
置換後:$1$2$3$4$5$6\r\n
いずれにせよ、行末に余計な半角スペースが残るので削除しましょう。
下記のように置換すればOKです。置換前は半角スペースと半角ダラー、置換後には何も入力しません。
置換前: $
置換後:
「すべて置換」で行末の半角スペースが削除されます。
着手の区切りを「、」にしたい場合は、さらに半角スペースを「、」に置換してください。