**** fmの裏機能(の一部)紹介 神無六郎、次郎 **** (1) %TORIKIN 攻方取禁 攻方だけ駒が取れない。ただし、ばか自殺詰で最終手の王手回避手の場合は 駒が取れる。 (2) %TORAZU 両不取 双方とも駒が取れない。ただし、最終手の王手回避手の場合は駒が取れる。 (3) %KINYOKU 禁欲ルール 攻方は駒を取らない王手があれば、その手を選択しなければならない。 玉方は駒を取らない王手回避手があれば、その手を選択しなければならない。 (4) %GOUYOKU 強欲ルール 攻方は駒を取る王手があれば、その手を選択しなければならない。 玉方は駒を取る王手回避手があれば、その手を選択しなければならない。 (5) %SUKASI すかしルール 詰上りは「すかし詰」でなければならない。 (6) %SHOU 将ばか詰 すかし詰OKの、古典的ばか詰のこと (7) %2MAI 二枚詰 詰上りで攻方の駒が2枚以下でなければならない。 以上(1)から(7)のルールは、FMSV.EXEが必要 (8) %AC 安南キルケ詰 %N.C 安北キルケ詰 安南+キルケ、安北+キルケ %N.C のところ、%NC とするとアンチキルケになってしまう。%CN でも可。 以上(8)のルールは、FMACV.EXEが必要 (9) %TC 対面キルケ詰 %BC 背面キルケ詰 対面+キルケ、背面+キルケ 以上(9)のルールは、FMTCV.EXEが必要 (10) %MC マドラシキルケ詰 %KMC Kマドラシキルケ詰 マドラシ+キルケ、Kマドラシ+キルケ 以上(10)のルールは、FMMCV.EXEが必要 (11) %AM 安南マドラシ詰 %NM 安北マドラシ詰 安南+マドラシ、安北+マドラシ 非常に遅いという問題があります。 以上(11)のルールは、FMAMV.EXEが必要 (12) %TM 対面マドラシ詰 %BM 背面マドラシ詰 対面+マドラシ、背面+マドラシ 非常に遅いという問題があります。 以上(12)のルールは、FMTMV.EXEが必要 (13) %Y(?) 安×詰 すべての駒(基駒)について、?で指定した相対位置に味方の駒(安駒)が 存在した場合、安駒は自身の本来の移動性能はなくなり、基駒の移動性能を 付与される。安駒に対して複数の基駒が存在した場合、安駒の移動性能は複 数の基駒の移動性能の総和になる。 ?のところ、Uならば安南詰。(U: Up) Dならば安北詰。(d: Down) Kならば安騎詰。(K: Knight) 他に、L (Left), R (Right) があり、UDLRは組合せが可能。 UUのように重ねると飛び安南詰になる。U2でも同様。 U,Dのようにカンマでつなげると、安南北詰になる。 U,Dと|は同じ意味。L,Rと-は同じ意味。 U,D,L,Rと+は同じ意味。UL,UR,DL,DRはXと同じ意味。 U2L,U2R,UL2,UR2,DL2,DR2,D2L,D2RとKは同じ意味。 以上(13)のルールは、FMYV.EXEが必要 (14) %X(?) ×面詰 すべての駒(基駒)について、?で指定した相対位置に的方の駒(対駒)が 存在した場合、対駒は自身の本来の移動性能はなくなり、基駒の移動性能を 付与される。対駒に対して複数の基駒が存在した場合、対駒の移動性能は複 数の基駒の移動性能の総和になる。 ?のところ、Uならば対面詰。(U: Up) Dならば背面詰。(d: Down) Kならば騎面詰。(K: Knight) 他に、L (Left), R (Right) があり、UDLRは組合せが可能。 UUのように重ねると飛び対面詰になる。U2でも同様。 U,Dのようにカンマでつなげると、対背詰になる。 U,Dと|は同じ意味。L,Rと-は同じ意味。 U,D,L,Rと+は同じ意味。UL,UR,DL,DRはXと同じ意味。 U2L,U2R,UL2,UR2,DL2,DR2,D2L,D2RとKは同じ意味。 以上(14)のルールは、FMXV.EXEが必要 (14) 限定詰 ルールに*を付けると限定詰になる。 ※ 限定詰=指定された手数ぴったりで、しかも 詰上りに持駒が余らないように詰めなければならない。 これは、すべてのルールと組み合わせる事ができる。 例えば、%AMF* なら安南マドラシ打歩限定ばか詰。 簡易検討や解答の時に便利な機能。解析時間がかなり短くなる。 また、風変わりな手順が発生するので、創作に用いても面白い。 (15) 王位置指定 玉位置指定が詰められる玉または王の位置を指定するのに対して、詰める側 の王または玉の位置を指定するときは、%[@xy]のようにする。 例えば、%[@11]S ならばか自殺詰で、詰めたとき受方の玉の位置が11でなけ ればならない。詰められる攻方の王の位置はどこでもかまわない。 %[xy/uv]とすると、攻方王位置xyと受方玉位置uvを同時に指定する。この場 合、詰める、詰められるに無関係に始めが攻方王位置、/の後ろが受方玉位 置になる。 例えば、%[11/31]S ならばか自殺詰で、詰めたとき攻方の王の位置は11で、 受方の玉の位置は31でなければならない。 これは、すべてのルールと組み合わせる事ができる。 (16) フェアリ駒機能 この機能で使えるようになる駒種は、一度に一種類だけ。 /EFP=ab:fpで(abリーパー)になる。ただしabとも0から4まで。fpは全 角文字1文字または半角文字2文字。 /EFP=00:fpで、全然動かない駒を作る事もできる。 /EFP=abR:fpで(abライダー)になる。 例えば、/EFP=21R:fpで、fpはナイトライダーになる。 /EFP=32:fpと入力すると、fpが32リーパー、つまりゼブラになる。 /EFP=32:縞と入力すると、縞が32リーパー、つまりゼブラになる。 例えば、55FP65FU,11GY21FP #9 ならば、攻方:55ゼブラ65歩、受方:11玉 21ゼブラ、の9手ばか詰である。 フェアリ駒は通常4枚だが、その数を変えられる。 /EFP=32:fp#18 と入力すると、ゼブラは18枚存在する事になる。 もしも盤上にゼブラが2枚しかなければ、玉方の駒箱に16枚ある事になる。 この機能で作れるフェアリ駒は1種類だが、駒詰と組み合わせて最大で3種 類のフェアリ駒を同居させる事ができる。 例えば、/EFP=22+10:fpと入力しておいて(これは合成駒指定。後述)、 %P(GH/5L)H と指令すれば、攻方の王がG、玉方の玉が5リーパーでその他 に、鳳凰をフェアリ駒として使える事になる。 王手無視機能(/EIGNCHK)よりも断然便利である。 ただし、fpを王様にする事はできない。 また、動きが大きい5リーパーとルート50リーパー、および、 特殊な動きをするグラスホッパーをフェアリ駒にする事はできない。 これらをフェアリ駒にしたい時には王手無視機能を使うしかない。 (17) 合成駒 色々な動きを組み合わせた、新種のフェアリ駒を創作できる。 ただし(16)と同様に、使える数字は0から4までである。 /EFP=33+40R:fpと入力すると、33リーパー+40ライダーになる。 /EFP=(ab|cd|ef|gh):fp、と入力すると、タテ対ヨコがa対b、c対d、e対f、 f対hの四種類の動きを組み合わせた事になる。数字は4からマイナス4ま で可能で、マイナスならば、後ろ向きの動きになる。 例えば、(10|11|01|-11)と入力すると、「前に1横に0」「タテと横が1対 1すなわちナナメ前」「前に0横に1」「タテと横が1対1の後ろ方向すな わちナナメ後ろ」の動きを合成した事になる。この駒は「酔象」である。 単にab+cdと入力した時にはab=baだが、上のように(ab|cd|ef|gh)の時には abとbaは違う事に注意!! (10|44|-33)という攻駒が55にあれば、54と11と91と28と88に動く事ができ る。 (34|03|-43)という攻駒が55にあれば、12と92と25と85と29と89に動く事が できる。 (30|24R|-13R)のように、Rを付けると、その方向にはライダーの動きをする。 (10R|-10R)ならば中将棋の「反車」であるし、(10|01R|-10)ならば、中将棋 の「横行」である。 更に、古将棋によくある「限定走り」の機能も可能である。 20Sならば縦に2マスだけ走れる。33Sならば斜めに3マスまで走れる。 ただし限定走りの場合には、21Sや34Sのようにねじれた方向は不可。 10R+33Sとか(32R|04|-22S)のように組み合わせて使える。 この機能で、古将棋の駒の中の大部分は使用可能になるし、色々な性能の駒 を何万種類も作る事ができる。 ただし合成駒を王や玉にする事はできず、同時に2種類以上のフェアリ駒を 作る事ができないのは(16)と同様である。 また、合成駒は成る事ができず、太子のような、特殊な性能を持つ事もでき ない。 以上(16), (17)のルールは、FM32Y.EXEとFMFV.EXEが必要。FM32.EXEの代わり にFM32Y.EXEを実行する。(FM32.EXEは、七郎氏から提供されるとき、FM.EXE に改名されているかもしれない。FM32Y.EXEは如何に?) 以上(1)から(17)のルールは、打歩・自殺詰との組み合わせが可能。 例えば、%TORIKINF ならば攻方取禁打歩ばか詰。 %Y(K)FS ならば安騎打歩ばか自殺詰。 ばかステイルメイト、ばか自殺ステイルメイトとは組み合わせられない。 (18) /Mオプションフラグ補遺 /Mオプションで、局面数/バイト数の後ろに「,+」を付けると、指定された 退避ファイルから不詰局面データを引き継ぎ、解析後引継ぎ用の不詰局面デー タを残す。不詰局面データは、ルールや使用駒数(受方持駒を含む)および 解析条件(/Eオプション、/Mオプション)が等しくなければならない。 例えば、/M9=10MB,+ /SABC とすれば、攻方の手番の不詰局面データの領域 を10メガバイト使用し、退避ファイル名をABC.FMSとして、不詰局面データ を引き継ぐ。 一族内で絨毯爆撃と称される類似図の連続解析の際に使用する。 ただし、ファイルの読み書きには意外に時間が掛かるので、あまり大きな領 域を指定すると、全体の解析時間が多くなるおそれもある。 (19) /Xオプションフラグ補遺 /XL 詰手順の表記を以下のように変える。 fmhv 2.64i (VC++) - Sat Nov 05 19:39:22 2005 ばか詰 3手 9 8 7 6 5 4 3 2 1 +---------------------------+ | ・ ・ ・ ・ ・ ・ ・ ・v玉|一 | ・ ・ ・ ・ ・ ・ ・ ・ ・|二 | ・ ・ ・ ・ ・ ・ ・ ・ ・|三 | ・ ・ ・ ・ ・ ・ ・ ・ 桂|四 | ・ ・ ・ ・v角 ・ ・ ・ ・|五 | ・ ・ ・ ・ ・ ・ ・ ・ ・|六 | ・ ・ ・ ・ ・ ・ ・ ・ ・|七 | ・ ・ ・ ・ ・ ・ ・ ・ ・|八 | ・ ・ ・ ・ ・ ・ ・ ・ ・|九 +---------------------------+ 持駒:飛 金 解析時間:0秒 解析局面数:1195 検出解数:1 ▲9一飛 ▽同 角 ▲2二金 詰み 解析時間:0秒 解析局面数:1607 検出解数:1 全検完了 以上 /XE 解析後に逃れ数を出力する。 fmhv 2.64i (VC++) - Sat Nov 05 19:38:20 2005 ばか詰 3手 9 8 7 6 5 4 3 2 1 +---------------------------+ | ・ ・ ・ ・ ・ ・ ・ ・v玉|一 | ・ ・ ・ ・ ・ ・ ・ ・ ・|二 | ・ ・ ・ ・ ・ ・ ・ ・ ・|三 | ・ ・ ・ ・ ・ ・ ・ ・ 桂|四 | ・ ・ ・ ・v角 ・ ・ ・ ・|五 | ・ ・ ・ ・ ・ ・ ・ ・ ・|六 | ・ ・ ・ ・ ・ ・ ・ ・ ・|七 | ・ ・ ・ ・ ・ ・ ・ ・ ・|八 | ・ ・ ・ ・ ・ ・ ・ ・ ・|九 +---------------------------+ 持駒:飛 金 解析時間:0秒 解析局面数:1195 検出解数:1 91飛 同角 22金 まで 3手 解析時間:0秒 解析局面数:1607 検出解数:1 全検完了 逃れ数:1369 /XS 不詰局面データ統計情報を出力する。 fmhv 2.64i (VC++) - Sat Nov 05 19:41:44 2005 /M2,9(2MB) ばか詰 3手 9 8 7 6 5 4 3 2 1 +---------------------------+ | ・ ・ ・ ・ ・ ・ ・ ・v玉|一 | ・ ・ ・ ・ ・ ・ ・ ・ ・|二 | ・ ・ ・ ・ ・ ・ ・ ・ ・|三 | ・ ・ ・ ・ ・ ・ ・ ・ 桂|四 | ・ ・ ・ ・v角 ・ ・ ・ ・|五 | ・ ・ ・ ・ ・ ・ ・ ・ ・|六 | ・ ・ ・ ・ ・ ・ ・ ・ ・|七 | ・ ・ ・ ・ ・ ・ ・ ・ ・|八 | ・ ・ ・ ・ ・ ・ ・ ・ ・|九 +---------------------------+ 持駒:飛 金 解析時間:0秒 解析局面数:1195 検出解数:1 91飛 同角 22金 まで 3手 解析時間:0秒 解析局面数:1607 検出解数:1 全検完了 M9 ハッシュキュー統計情報 全エントリ数:100000 使用エントリ数:13 全ヘッダ数:16384 使用ヘッダ数:13 最大キュー長:1 平均キュー長:1.00 標準偏差:SQRT(0.00) 以上 標準偏差に根号が残っているのは、fmがむかし浮動小数点演算ができない 環境で動いていた名残である。 (20) 左右反転の秘密 対話処理中に$Sコマンドを実行すると、図の左右が反転する。 森茂氏の発見で、図を左右反転すると解析時間が短くて済む場合があること がわかっている。もちろん、逆に遅くなることもある。 解析にある程度時間が掛かる図の場合、一度左右を反転させて、どちらが早 く解析できるか確認すると良い。 (21) 蟲についての注意 以上の「裏機能」には、利用者が少ない、装備してからの歴史が浅いなどの 理由で、蟲が潜んでいる可能性が、一般の機能よりも高い。 一族がみんなで、様々な実験をした結果、致命的な蟲は一掃されたが、例え ば、複雑な合成駒を作ると、解析の途中で飛んでしまう可能性がまだ残って いる。 変な事が起きた場合の連絡先は神無七郎氏。 他の人に質問しても、何も分からない恐れがある。(笑) *** 神無六郎筆、次郎補足 2005年11月 ***