フェアリー用盤面表示スクリプト --- fview.htm 0.60 □ はじめに  本スクリプトはブラウザ上でフェアリー詰将棋を動かして鑑賞することを目的と して作成しました。普通の将棋や詰将棋にはブラウザ上で「動く盤面」がいくつも 実現されていますが、フェアリーでは適当なツールがありませんでした。特に問題 なのが、フェアリーでは、駒が通常ありえないような動きをしたり、新種の駒を使 ったりすることがあることです。  そこで、作成したのがこのスクリプトです。原理としては、各局面ごとのデータ を順に表示するだけ、という単純なもので、はっきり言って何も考えていません。 ただ、作りが単純な分、結構無茶なルールでも対応可能になっています。  また、このスクリプトの大きな特徴は「画像を使用しない」ことです。これによ り、新しい駒を使っても、それに対応する画像を用意する手間が省かれています。 逆にそのために「Internet Explorer 4.0以上(以下IEと略す)でしか動かない」 という欠点も生じています。まあIEはWindowsやMacに対応していますし、シェアも 90%を越しているそうなので、このスクリプトを使うときだけはIEで閲覧をお願い することにしましょう(割り切り)。 □ 梱包内容と使い方  本ファイル(fview.exe:自己解凍形式)を実行すると次の5つのファイルを得る ことができます。 fview.htm 盤面表示用のhtmlファイル probdef.js 表示する局面の定義ファイルのサンプル fdb2js.awk fdbから局面定義ファイルを生成するスクリプト fmview.fdb サンプルのfdbファイル fview.txt 本ファイル  最初の fview.htm が盤面表示スクリプトの本体、probdef.js が局面定義ファイル です。この2つを同じディレクトリに置き、fview.htm を開けば、棋譜を表示するこ とができます。  probdef.js の書き方は見れば分かると思いますが、一応解説しておくと、 各局面ごとに、 1. 攻方の盤面配置を semekata_p の配列に文字列で放り込む 2. 受方の盤面配置を ukekata_p の配列に文字列で放り込む (上記1,2の文字列は座標(2桁の数字)と駒(全角1文字)を並べたもの) 3. 攻方の持駒を semekata_moti の配列に文字列で放り込む 4. (必要時のみ)受方の持駒を ukekata_moti の配列に文字列で放り込む  となります。  この説明でも分からない場合は使うのを諦めるか JavaScript を解説本か何かで勉 強し、fview.htm のソースを読むしかありません。  また、局面定義ファイルを複数使用する場合は、probdef.js の名前を prob50.js などと適当に変更し、fview.htm?prob50.js のような書式で呼び出します。? 以降が 省略された場合は、自動的に probdef.js を参照します。  さて、必要最小限の道具はこれだけですが、使ってみれば分かる通り、probdef.js を記述するのは結構面倒です。特に長編趣向作になると、とてもやってられません。  そこで fdb2js.awk というツールを用意しました。  fdb2js.awk は各種の棋譜から probdef.js を自動生成するためのawkスクリプトで す。神無次郎さんの作った fmview はfmの出力形式だけでなく、柿木将棋のkif形 式、ki2形式の棋譜を読むことができます。また、ドキュメントには記載されていま せんが、読んだ棋譜を fmview.fdb というファイルに保存する機能があります。です からfmview.fdb を probdef.js を自動で変換できれば大抵の棋譜は fview.htm で表 示できる形式になるわけです。  具体的な使い方は次の通り。 1. kifファイルやfmoファイルをfmviewに読み込ませる。  (柿木将棋やkifuwのオプションで「棋譜読み込み後局面」が「保存時局面」に   なっているとうまく読み込めません。オプションを変更するか棋譜ファイル中の   「&読み込み時表示」を手作業で削除してください。) 2. Shift+S キーで fmview.fdb を生成する。  (fmview.fdb が生成される場所は条件によって違います。普通は読み込ませた棋   譜と同じフォルダですが、ショートカットなどを使っていると、そのショートカ   ットの作業ディレクトリに生成されます。) 3. fdb2js.awk で probdef.js を生成する。   fmview.fdb と fdb2js.awk を適当なフォルダに置き、mawk32.exe にパスが通っ   た状態で、コマンドプロンプトから次のコマンドを入力します。   mawk32 -f fdb2js.awk fmview.fdb > probdef.js  (mawk32 は Vector 等から入手してください。jgawkでも大丈夫です。) 4. 以上で変換作業は終了。   fview.htm と probdef.js を同じフォルダに置き fview.htm を開くと棋譜を鑑賞   できます。  なお、使用時の制約として「ひとつの fmview.fdb ファイルに1問分だけデータが 入っていること」があります。Shift+S キーを押すたびに fmview は fmview.fdb に 問題を追記していくので、注意が必要です。  上記の説明で「awkって何?」という方も多いかと思いますが、テキストデータの処 理には便利な言語なので、覚えておいて損はないでしょう。もちろん別に言語仕様を 知らなくても、本ツールを使う際には問題はありません。 □ 制限事項(省略)  本スクリプトはまだ開発途上であり、制限事項を書いていくときりがありません。  fdb2js.awk もまだ不完全で Onsite Fairy Mate 掲載作の中ですら、うまく変換で きない棋譜があります。(例えば「獅子王」を使う問題。)  今後もちまちまと改良は続けていくつもりなので、少しずつ改善できたらと思って います。 □ 著作権  本スクリプト(同梱の付属ツールも含む、以下同様)自体の著作権は神無七郎(橋 本孝治)がこれを有します。  ただし、各人の責任において、このスクリプトを使用・改変・再配布することは完 全に自由です。(というか、改良できたら私にも使わせてください。) □ 免責 本スクリプトをお使いくださる方は、ご自身の責任においてこれをお使いください。  本スクリプトを使用することにより何らかの被害があっても、その責についてはご 容赦願います。 □ 更新履歴 2005.12.14 0.60 局面定義ファイルの引数での指定に対応 アンチキルケ及びPWC対応 gawk → mawk への訂正 2004.08.04 0.50 初版公開 □ 連絡先 本スクリプトに対して、ご意見、ご要望、不具合の指摘等を下記までお寄せいただけ れば、幸いです。  神無七郎(本名:橋本孝治) E-mail : janacek789@ybb.ne.jp 2004年12月 (神無七郎/橋本孝治)