TOPへ戻る



 ダウンロードをお急ぎの方はこちらへ


序文:逃げ将棋とは何か?

 一言で言えば「詰将棋と似て非なるもの」です。
 とてもよく似ていますが、違う点がいくつかあります。

 逃げ将棋は、詰将棋のような将棋パズルの一種です。

 将棋自体のルール等についてはここでは説明を省きます。将棋の駒の動かし方 などはご存知と前提した上で、逃げ将棋特有の部分について、説明したいと思います。

 「逃げ将棋」と銘打つだけあり、逃げることが主題になります。
 追い方(おいかた) と 逃げ方(にげかた)に分かれます。

 詰将棋の用語と比較するならば、

 王手をかける側=攻め方=追い方
 王手を外す側=受け方=逃げ方

 となります。
 逃げ方は詰まないようにひたすら逃げます。このあたりは呼び方が違うだけで詰将棋と同じです。

 次に具体的に局面を挙げて説明しましょう。

 

 この図をご覧ください。玉は51の位置にいるとします。
 普通の詰め将棋ならば、ごく簡単な3手詰問題ですね。
 52金打、同金、同歩成りまでです。

 上手の玉は、「受かっていない」状況で、いわゆる受けナシ、 必至です。通常、上手の玉は「受けナシだから負け」 だとか「必至で詰み」などと考えることでしょう。

 3手詰め問題ならばそうでしょう。しかし、  1手詰み問題ならば どうでしょうか?

 もしこれが3手詰め問題ならば、たしかに詰んでいて、逃げられません。
 ですが1手詰み問題ならば1手で寄せる手はなく、52金打は同金と払われます。

  逃げ将棋においては、手数を最も重視します。


 逃げ将棋では、逃げ方は指定された手数を逃げればよいのです。
 1手詰みと指定した場合、1手で詰まずに玉が生きれば(逃げれば)、 逃げ方の勝ちになります。

 もちろん1手を指定した問題には1手で詰む手順が必要ですが。 上記の図では1手で詰まないので1手詰み問題にはなりません。
 ここで説明したいのは「指定手数まで残り1手ならば、逃げ方は 詰まない」ということです。5手詰め問題で、4手まで指して、この 局面になったとしましょう。追い方はあと1手指すことができます。 そして、あと1手ではどうなっても詰みません。すなわち逃げ方の勝ちです。

 このあたりがこのゲームの中核になります。

 逃げ将棋における追い方の正解手順は、基本的には1つが理想的ですが、 複数ありえます。

 正解手は 指定された手数以内で詰む手順すべて です。

 3手詰問題ならば、1手で詰む手も、3手で詰む手も、両方が正解です。 もちろん5手で詰む手は不正解です。

 このように詰むまでの手数が大きく影響します。

 本将棋や詰将棋に慣れた方には「詰んでいるのに、手数が合わない」 と驚く展開が、きっと待ち受けています。

 おさらいしましょう。要約すれば

 1)逃げ将棋は、追い方と逃げ方に分かれて楽しむ、詰め将棋もどき
 2)手数が最も重要 勝利条件の手数を「指定手数」と呼びます
 3)追い方は、指定手数以内で詰ませば勝ち
 4)逃げ方は、指定手数を逃げきれば勝ち

 というゲームです。




本文 ルールの詳細など:

 ルール上は3手詰問題で1手で詰む手があってもかまいませんが、なるべく なら、指定手数を最短手数にしたほうがよいです。1手で詰むであろう問題は1手詰と指定します。

 これは出題者の意図に関係することで、意図として「この手数で詰む」と作っても、実際はもっと短く詰む手順がありうるかもしれません。

 あるいは指定手数は難易度調整にも役立ちます。指定手数を詰みの最短手数にすれば難易度は上がり(=正解手順が減る)、最短手数を超えると難易度は下がります(=正解手順が増える)。

 次に、詰将棋でいうところの「無駄合い」はありません。
 合い駒はいくらでもして構いません。

 逃げ方の立場から言えば「合い駒によって指定手数を生き延びれば勝ち」です。
 無駄な合い駒で手数を稼いでいるだけですが、逃げ方にとってはそれは 重要なことで、ほかに手がないときは生き延びる唯一の作戦です。

 

 例えばこの図です。これも典型的な受けナシ局面で、飛車の横利きを 受ける手はないように見えますが、合い駒によって手数を稼げるので、 3手詰め問題ならば3手を逃げきることが可能です。
 ですが7手詰問題ならば、ちょうど7手で詰む形です。
 このように、逃げ将棋においては、指定手数が勝ち負けに大きく影響します。

 次に、「駒余り」について。詰んだとき、追い方の持ち駒が余ることを 駒余りと呼びますが、逃げ将棋においては余っても構いません。 駒が余らない手順が正解というわけではないです。詰将棋に慣れた方は、駒が 余る手順を不正解とみなしてしまいがちでしょう。

 以上は作品の作り方に関する話で、そういう作品があるとき、現行の詰将棋 では「不完全作」として成立しないものとみなすことがあります。逃げ将棋では 成り立ちます。

 このあたりの差を踏まえると、ほぼ詰将棋と同じものとして楽しめます。

 次に、「余詰」についてです。定義はほぼ詰将棋と同じですが、 後述する余詰チェックに関連するので説明します。
 詰む手順が複数あるときに、2つ目以降を「余詰」と定義するのが広義の余詰 ですが、もう少し条件が絞られます。

 A) 1手詰問題のとき − 詰手順が複数あれば2つ目以降が余詰

 B) 3手〜7手詰問題のとき − 最終手の分岐を無視した詰手順が複数あれば2つ目以降が余詰

 Aについてはそのままなので、説明不要ですね。問題はBです。
 「最終手の分岐」の最終手とは、例えば3手詰問題の3手目のことです。
具体的に盤面を出してみましょう。

 

 初手は32歩成りしか詰みません。2手目は11玉だけですね。
 そこで3手目ですが、選択肢は22銀打、22角打、23桂打の3つです。  これをそのまま「詰手順が3つある」と数えてはいけません。3手目は 最終手なので、3手目の分岐が無視され、結果として詰手順はひとつだけ 存在するということになります。

 別の言い方をすると、最終手はいくつあっても余詰にはなりません。
 これがもし、初手(1手目)で分岐するならば、それは余詰です。
 この図でいうと、もし持ち駒に金があれば、初手22歩成り以外にも初手32金 が成り立ち、余詰となるのです。

 もう一例挙げます。
 
 旧来の詰将棋ルールでは、正解手順は1つです。43馬、同龍、22金まで。
 2手目は同龍以外のすべてが無駄合になるのでそうなりますね。
 逃げ将棋ルールでは最終手以外の分岐はすべて余詰となるので、この図の詰手順は合計8個あります。2手目に歩を合駒してもよいし、32龍と引いてもよいです。




作って楽しむ逃げ将棋

 データファイルの追加や改造は自由にできる仕様です。
 自分で作ってもいいですし、既存のものを借りてくるのもよいでしょう。
 無駄合いが生じないならば、既存の詰将棋の問題が、同じように動くはずです。

 問題の作り方は、若干のルールの違いを把握すれば、詰将棋の場合とほとんど同じです。
 問題作成には フリーソフトのKifu For Windowsがおすすめです。
 局面図と正解手順を作り、KIF2形式で出力してください。
 Kifu For 〜における正解手順の作り方は、問題を作成後に「継続」して、1手ずつ指して、詰み上がりで中断することでできます。
 ちなみに現バージョンではコメントに非対応です。それに「変化手順」についても対応しません。正解手順は1つを前提にしています。
 また、正解手順についてはただ結果を表示するだけで、それ以外には何も影響しません。答えがわからない場合のものですし、もしも不要なら、正解手順を書かなくても、逃げ将棋の問題としては機能します。

 作った問題が解けるかどうか、確認するための「ソルバー機能」があります。それは次の章で説明します。

 データファイルを更新したとします。それがソフトへ反映されるタイミングは、 一度別のファイルを読み込んだ後で、もう一度読んだときです。
 正順で読み、逆順で読むことで、同じファイルへ戻ることができるので、通常は この方法で変更を反映させます。

 なお、今のところ双玉問題には対応していません。片玉のみです。

 「問題自動生成」機能について:
 この機能は、内部的にソルバーを利用し、ランダム配置で問題を自動生成します。
 ランダム(乱数)に頼っているので、いつ問題が完成するかはわからず、 すぐ出来ることもあれば、30秒経過しても完成しないこともあります。
 7手詰問題は計算量を減らすため、玉の位置や駒の数を狭く限定しています。
 問題生成後、クリップボードにKIF2形式で局面図が入るので、テキストエディタやKIF2形式に対応した他のソフトへ移すことができます。




逃げ将棋のソフトウェアについて

 Windows用フリーソフトです。もちろん無料で、広告なども表示しませんし
どの時点においても利用料金は生じません。オフラインで動くものなので
ネットへ接続することもないです。

 逃げ将棋という名称が、どこかの何かと一致したとしても、関連性はありません。
 「詰将棋」以外の名称をつけただけなので。

 問題は1手〜7手詰めまでに対応します。いずれかの手数を指定して、作成ボタンを押すと、それに対応したデータファイルを読込みます。
 データファイルはごく普通のテキストで、Kifu For WindowsのKIF2形式そのままです。KIF2形式に対応したソフトならば、データの編集に利用できます。
 Kifu For Windows、将棋所などがフリーソフトとして使いやすいです。

 データファイルの命名規則は (指定手数)_(何か).txt となっています。
 例えば03_0001.txt です。問題集を連番で管理することを想定していますが、 連番でなくても何でも構わないです。
 1手、3手、5手、7手のみに対応しているので、09_0001.txt などと 名づけても読めません。
 ランダムでは(指定手数)_(何か).txt で探したファイルのどれかを選びます。
 正順、逆順というのはソートした結果の順番です。

 遊び方の基本操作は「ドラッグ」です。運びたい駒を左クリックした まま、移動先へ運んでください。持ち駒を打つ場合も同様です。持ち駒の画像を ドラッグしてください。


 7手詰ソルバーについて

 ソルバー(Solver)とは問題を解くものという意味です。
 現在局面から7手先までの詰みを発見したいときに使います。
 詰みがなければ詰まないと答えます。
 正解手順を知るためのヒントとして使えます。
 ハッシュテーブルを使用して高速化するので、同一局面で二度実行すると、 二度目は高速です。
 詰手順を1つ発見すると探索を中断するので、余詰は発見できません。

 計算中にもう一度ボタンを押すと、中断します。
 60秒経過しても完了しない場合は中断します。

 ソルバー2について

 options.iniを編集してSolver2_Enabled=1とすると、もうひとつのソルバーを使用できます。
 現在局面から7手先までの詰み手順を発見できます。
 7手詰ソルバーとは異なるアルゴリズムで探索するので、正解手順が複数ある場合に別の手順を示すことがあります。
 実験的に実装してみたソルバーで、まだまだ調整不足かもしれません。
 ちなみにハッシュテーブルは使いません。それにより、ソルバー2はいつも同じ速度(=同じ計算量)で動作します。

 計算中にもう一度ボタンを押すと、中断します。
 ソルバー2は経過時間による中断処理はありません。

 余詰チェックについて

 Build130629からこの機能を搭載しました。余詰の発見に役立ちます。
 詰手順を1つ発見する探索に比べると計算量は多くなるので時間がかかります。
 前述した余詰の定義でそれを探索します。(最終手の分岐は余詰と見なしません)
 いわゆる「変化同手数」は考慮しないので、他のソルバーで余詰とみなされないものがここでは余詰となる場合があります。

 計算中にもう一度ボタンを押すと、中断します。
 120秒経過しても完了しない場合は中断します。

 ハッシュテーブルについて

 ハッシュテーブルを用いて、すでに計算した局面を再び計算しないように しています。計算量はなるべく減らしたほうが高速化するので。
 ハッシュテーブルの大きさは4MB。意図的に小さく実装しています。


 *.tblファイルについて

 7手詰問題で、初期状態のときに7手詰ソルバーを実行すると、その結果のハッシュテーブルを[問題].tblとして出力します。このファイルは一時的に利用する(=その都度メモリから消去される)ハッシュテーブルをHDDに保存して永続的に再利用するためのものです。再利用すればソルバーは無駄なく高速動作します。
 tblファイルがごちゃごちゃ増えるのが余計ならばoptions.iniを編集することで抑制できます。


 ソルバーの誤判定について

 なるべく100%の精度で詰む/詰まないを判定するようにしていますが、稀に誤判定が生じます。これは局面のハッシュ値に関する問題で、いわゆるハッシュ値の衝突が原因です。
 誤判定が生じたとき、駒AがマスXYにあるときのハッシュ値に問題があるので、その値を変更して本体のバージョンアップとしています。修正個所は一箇所なので直す手間は簡単ですが、誤判定という現象は深刻で厄介ですね。おそらくソルバーの精度は100%ではなく99.8%など若干低いです。
 相当なレアケースなので、見つけるたびに修正をかけて、精度が99.7から99.8へ上がった・・・というように考えています。自分の環境では数ヶ月に一度見つかることです。


 動作速度について

 ソルバーの動作速度は比較的遅いです。これは開発環境側の問題で、C++などに比べると8〜16倍程度遅くなります。コンパイラの最適化処理に関わる問題です。最適化が目一杯かかれば今の16倍速くなる可能性がありますが現状は無理です。コードの合理化よりもコンパイラの最適化がソフトの動作速度に深く影響します。
 C++に移植すれば高速化するのはわかっていますが手間がかかりすぎるのでできていません。


 英語表示について

 Windowsのシステムロケールが日本語なら日本語、それ以外なら英語で表示します。options.iniを編集して、英語表示を強制することも可能です。

for english speakers:
this software check the windows-system-locale,and it uses english-mode if locale is so. maybe MS Gothic Font is required. you can edit options.ini.





スクリーンショットとダウンロードリンク

 画面はこんな風です。(クリックで拡大します)
 

 ダウンロードリンク:

 ファイル名 サイズ     MD5ハッシュ
 nigesho.lzh 929,770 bytes 7AFF6129DA231CBF8B4B1419EA48632F

 Let's Play 逃げ将棋 2012/01/29 収録問題数=1570



 必要動作条件等:
 32bitWINDOWS(95/98/ME/2K/XP)用です。
 未確認ですがVistaや7、8でも多分動きます。
 LHAで圧縮しているので解凍が必要です。
 ランタイムや.Net FrameWorkなどは不要です。
 描画に使わないのでDirectXも不要です。
 CPUはPentium III 800Mhz以上あると快適に動くと思います。
 メモリ消費量は約15MBです。
 その他:
 ときどきアイフォンやアンドロイド携帯でフリーゲームを探している人を 見受けますが、本ソフトは「Windowsのパソコン用」です。