第7回です。
第5回までで詰将棋の図面を印刷できるようになりました。
それには詰将棋を次のような形式で表現しなければいけません。
\図面始 \後手{5}{1}{玉} \先手{5}{3}{歩} \図面終{金} \図面始 \後手{1}{1}{香} \後手{2}{1}{桂} \後手{2}{2}{玉} \後手{1}{4}{歩} \先手{3}{4}{銀} \図面終{金 銀}
この形式を仮につみき形式と呼ばせてもらいましょう。
今回は柿木将棋の形式をつみき形式に変換するスクリプトを書きます。
前回同様にawkの命令を編集し、実行する準備を整えてください。
この9行目~17行目から駒種と駒の位置情報を得ることを考えます。
次の命令が使えそうです。
substr(s,i,n) sのi番目から始まるn文字の部分文字列を返す
またif文やfor文はcなどと一緒です。
まずは分解する実験をしましょう。
【命令.awk】を次のように変更し、保存してください。
実行してみると
上手くいっているようですね。
あとはif文を使って駒のない位置はスキップし、「v」のあるなしで先手の駒か後手の駒かを判断すればよい訳です。
【命令.awk】を次のように改良します。
さらに変換したテキストを残しておきたいので、【実行.bat】を次のように書き換えて保存します。
この【図巧001.txt】をエディタで開くと、つみき形式になっていることが確認できます。
さて久しぶりにCloudLaTeXにログインし、前回のファイルの続きにこの部分を貼り付けてみましょう。
コピーするには^Aして^Cです。
本文にカーソルを移して^Vでペーストです。
これでコンパイルすると
さてこれで、柿木ファイル(.ki2)からつみき形式(.txt)に変換し、それを\(p\LaTeX\)で組版する方法まで説明することができました。
次回はもっと大量の棋譜ファイルを一気に組版する工夫をしていきたいと思います。
次回までに自作でも蒐集した作品でも棋譜ファイルをたくさん準備しておいてください。
ここからはオマケです。
【命令.awk】がうまく入力できなかった方のために図面変換.awkとして上げておきましたのでご利用ください。
awkの命令の細かい所の解説ははしょりましたが、多分cと構文は殆ど同じだろうと思いますので、ゆっくり読めばたいしたことはやっていないとお解りでしょう。
「|」と「\」には特殊な意味があるので、それをキャンセルするために「\|」と「\\」になっています。
余談ですが、つみき形式の拡張子を最初つ・み・きなので頭文字をとって.tmkにしかけたのですが、水甫形式と一致してしまったので諦めて.txtにしました。
Tweet