AOYAMA Koji's プログラミングブログ - プログラミングを楽しく体験

レベル16:本格的な3手詰【自動生成☆詰将棋】全員向け(プログラミング無関係)

2025/08/03
レベル16:本格的な3手詰【自動生成☆詰将棋】

 将棋パズルを自動生成するWebアプリの新バージョンレベル16:本格的な3手詰。 将棋の基本とも言える3手の読み。 長手数の読みもまずは3手からです。 棋力向上を目指して、読みを楽しみましょう。
 後半では、自動生成をできるだけ早く収束させる工夫について、技術解説しています。 ぜひそちらもご覧ください。
レベル16:本格的な3手詰【自動生成☆詰将棋】
[PR]

遊んでみよう! レベル16:本格的な3手詰



レベル変更


 自動生成☆詰将棋は、自分が楽しめる問題レベルを選択することをおすすめします。 レベルを変更する場合は以下からご確認ください。

プログラミングブログ記事一覧


詰将棋アプリの遊び方・操作方法


 本Webアプリケーション【自動生成☆詰将棋】の操作方法を説明します。

[操作方法] 駒の動かし方


レベル16:本格的な3手詰【自動生成☆詰将棋】 駒の動かし方
 動かしたい駒をクリックまたはタップし、続けて動かしたい先のマスをクリックまたはタップすることで、1手指すことができます。 それにより詰みの状態になれば、成功です。

[操作方法] 問題(詰将棋)の更新


レベル16:本格的な3手詰【自動生成☆詰将棋】 問題(詰将棋)の更新
 更新ボタンをクリックまたはタップすると、詰将棋の問題が更新されます。 今の問題は消えてしまいますのでご注意ください。

[操作方法] やりなおし(進む・戻る)


レベル16:本格的な3手詰【自動生成☆詰将棋】 やりなおし(戻る・進む)
 戻るボタンをクリックまたはタップすると、手を戻すことができます。 進むボタンで再確認することができます。

[操作方法] 正解を見る


レベル16:本格的な3手詰【自動生成☆詰将棋】 正解を見る
 解ボタンをクリックまたはタップすると、正解を見ることができます。
 正解に対しても、戻るボタンと進むボタンで再確認することができます。

[操作方法]問題(詰将棋)のURLをコピー


レベル16:本格的な3手詰【自動生成☆詰将棋】 詰将棋問題のURLをコピー
 urlボタンをクリックまたはタップすると、現在表示されている問題のURLをコピーします。
 コピーされたURLに移動すると、自動生成☆詰将棋シリーズの詰将棋ソルバーで、 現在の問題およびその解答を確認することができます。 繰り返しプレイしたい問題の保存や、お気に入りの詰将棋の共有にご利用ください。

手数制限について


レベル16:本格的な3手詰【自動生成☆詰将棋】 正解を見る
 1手詰の問題は、1手で詰ませられれば正解ですが、3手で詰ますなど、手数をオーバーすると失敗です。
 3手詰の問題も、3手で詰ませられれば成功、そうでなければ失敗です。
 一般的な詰将棋は、何手かかっても王手の連続で詰めば正解ですが、 本記事では指定手数以内に収める必要があります。 ご注意ください。
SOLVER

[操作方法] 別の王手解除方法を確認する(正解確認後)


レベル16:本格的な3手詰【自動生成☆詰将棋】 別の王手解除方法を確認する
 正解するか、正解を確認した後で、手を戻すと、図の王手解除方法変更ボタンが現れます。 これをクリック/タップすると、王手解除方法が変更されます。
 例えばこの図は、左下に「(2/3)▽2三玉」と表示されています。 ▲3三銀不成に対して、2二にいた▽玉が2三に逃げたところです。
 ここで王手解除方法変更ボタンをクリック/タップすると、自動的に▲3三銀不成をやりなおして、玉が別の場所へ逃げます。 ※王手解除の方法が1種類しか無い場合は前回と同じ動作をします
 そこから詰将棋ゲームを再開することができますので、色々な玉の逃げ方、王手解除方法に対する詰みを確認することができます。
 王手解除方法を変更した場合、短手数で詰んだり、持ち駒が余って詰む場合があります。 持ち駒余りの詰みになった場合は、画面上部に「[持ち駒余り]」と表示されます。

詰将棋(つめしょうぎ)とは?将棋初心者向け基本ルール


 詰将棋は、将棋ルールの範囲内で、王手をかけ続けて、詰みの状態にするパズルゲームです。

将棋のルール


 将棋は、先手と後手が対戦し、交互に指して(さして=自分の駒を1つ動かして)、先に相手の王将を取った方が勝ちというルールのゲームです。
 駒ごとに動ける場所が決まっています。
 自分の駒を動かした先に、相手の駒があれば、その駒を取ることができます。

王手(おうて)


レベル16:本格的な3手詰【自動生成☆詰将棋】 王手の例
 次に相手の王将が取れる状態のことを、王手といいます。
 金は矢印の方向に動けるため、この図は、王手がかかっています。

王手の解除と詰み(つみ)


レベル16:本格的な3手詰【自動生成☆詰将棋】 王手の解除の例
 王手に対しては、この図のように、逃げるか、王手をかけられている駒を取るなどして解除すれば、ゲームを続けられます。
 しかし、王手を解除できなければ、その時点で終了です。 実際に王将が取られるところまでは指しません。
 王手をどうやっても解除できない状態のことを、詰みといいます。

離れマスへの王手


レベル16:本格的な3手詰【自動生成☆詰将棋】 離れマスへの王手の例
 長距離を動ける駒は、この図のように離れたところから王手をかけることができます。


合駒(あいごま)による王手の解除


レベル16:本格的な3手詰【自動生成☆詰将棋】 合駒の例
 長距離を動ける駒に、離れたところから王手をかけられた場合、間に駒があれば、王手を解除することができます。 このように間に駒を置くことを、合駒といいます。
 後手(玉側)の持ち駒から合駒を打つことで、長距離動ける駒の、離れたマスからの王手を解除することができます。

後手の持ち駒


駒種
合計数
4
4
4
4
2
2
18

 詰将棋では、後手は、問題に登場しない駒をすべて持ち駒として持ちます。(先手玉は除く)
 将棋で使用される各駒の合計数は、この表の通りです。

合い利かず(あいきかず)とは


レベル16:本格的な3手詰【自動生成☆詰将棋】 合い利かずの例
 ところで、この図の王手に対しては、合駒の意味がありません。


レベル16:本格的な3手詰【自動生成☆詰将棋】 無駄合いの例  具体的にはこの図のように、合駒を打っても、取られてしまうだけで、詰んでいる状況は変わりません。
 このように、手数を引き伸ばすだけの駒のことを「無駄合い」、 有効な合駒が効かない詰みの状況を「合い利かず」と呼びます。
 将棋のルールでは、無駄に合駒を打つこともできますが、 詰将棋では、無駄合いを打つ前の状態で詰みが確定します。 後手が無駄に手数を引き伸ばすことは、できません。

合い利かず(あいきかず)の1手詰


レベル16:本格的な3手詰【自動生成☆詰将棋】 合い利かずの1手詰
 少し複雑なので、もう少し例を見ていきましょう。
 図は、合い利かずを利用した1手詰の問題です。


レベル16:本格的な3手詰【自動生成☆詰将棋】 合い利かずの1手詰
 この問題は、この図のように動くことで、詰みになります。
 香と玉の間に3マスありますが、どこに合駒しても取られるだけの無駄合いで、合い利かずの詰みです。


レベル16:本格的な3手詰【自動生成☆詰将棋】 合い利かずのサブテキスト
 ここは詰将棋の中でも複雑なところなので、本アプリケーションでは補助情報として、画面上部に「合い利かず」と表示しています。 参考にしてください。

各駒の動かし方と詰みのパターン


 駒はそれぞれ、動ける場所が決まっています。
 本セクションではまず、全駒共通の指し方を解説し、駒ごとの動かし方は後述します。

盤上の駒の動かし方


レベル16:本格的な3手詰【自動生成☆詰将棋】 基本的な駒の動かし方
 盤上の駒は、動ける先が空いているか、相手の駒のある場所なら、動くことができます。
 もし相手の駒があれば、それを取って、自分の持ち駒にします。

持ち駒の打ち方


レベル16:本格的な3手詰【自動生成☆詰将棋】 持ち駒はすべての空きマスに打てる
 持ち駒は、駒の種類によらず、盤上の好きな空きマスに打つことができます。
 ただし、詰将棋ではそれにより王手をかける必要がありますので、打てるマスは、そこ駒がそこにいることで王手がかかる場所に限られます。
 なお、相手の駒があるマスへは打てません。 つまり持ち駒を使用して直接取ることはできません。

駒の成り方


レベル16:本格的な3手詰【自動生成☆詰将棋】 駒の成り方
 盤上の駒を動かすときに、移動元または移動先が相手陣地に入っていると成ることができます。 盤上の、奥の3行が相手陣地、手前の3行が自分の陣地です。
 成る場合は成(なり)、成らない場合は不成(ならず)といいます。 成るか成らないかは、指している手番の人が選択します。
 成ることで、駒の動ける範囲が変わります。 具体的には、個別の駒の動かし方をご確認ください。
 なお、玉と金は成ることができません。 また、持ち駒からいきなり成の状態で打つことはできません。

玉(ぎょく)の動かし方


玉の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 後手玉が動ける範囲

 玉は、全方向に一歩ずつ動けます。
 玉は、前記の王将のことです。 人間同士の対戦では強い人が王(おう)=王将(おうしょう)、その相手が玉(ぎょく)=玉将(ぎょくしょう)を使用するという慣例はありますが、 ルール上は同じ駒です。
 当ブログの「自動生成☆詰将棋」シリーズでは「玉」で統一します。

金(きん)の動かし方と詰みの例


金の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手金が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手金の動ける範囲

 金は、斜め後ろ以外に一歩ずつ動けます。

頭金による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 頭金の詰みの例 レベル16:本格的な3手詰【自動生成☆詰将棋】 頭金の詰み矢印解説

 金は、後ろに行き場の無い相手玉の正面あると、相手玉は行けるところが無いため、その金が取られても取り返せる状態にあれば、詰みになります。 これが詰将棋の基本の形で、頭金(あたまきん)と呼ばれます。

金による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 金による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 金による詰みの例2

 また、金は前方および横に動けるため、図のような詰みの形があります。

銀(ぎん)の動かし方と詰みの例


銀の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手銀が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手銀が動ける範囲

 銀は、前3箇所と、斜め後ろに一歩ずつ動けます。

成銀(なりぎん)の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手成銀が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手成銀が動ける範囲

 銀は成ると成銀になります。
 成銀は赤字の全で表されます。動かし方は金と同じです。

銀による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 銀による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 銀による詰みの例2

 銀は前方および、すべての斜め方向に一歩ずつ動けるため、図のような詰みの形があります。
 例1は成っても成らなくても詰みますが、例2は不成にしないと王手がかかりません。

桂(けい)の動かし方と詰みの例


 桂は桂馬(けいま)と書くことも多いです。 自動生成☆詰将棋では桂で統一します。

桂の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手桂が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手桂が動ける範囲

 桂は、横1マス前2マス離れたところに1歩動けます。
 自分や相手の駒に遮られていても、飛び越えられます。 トリッキーな動きになります。

成桂(なりけい)の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手成桂が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手成桂が動ける範囲

 桂は成ると成桂になります。
 成桂は赤字の圭で表されます。動かし方は金と同じです。

桂による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 桂による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 桂による詰みの例2

 桂は、玉の動けない範囲から王手ができ、駒を飛び越えることができるため、例1のように、駒ひとつで詰ますことが可能です。 相手陣地では、成ることで、金と同様の詰み筋があります。

香(きょう)の動かし方と詰みの例


 香は香車(きょうしゃ)と書くことも多いです。 自動生成☆詰将棋では香で統一します。

香の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手香が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手香が動ける範囲

 香は、前方に長距離動けます。
 途中に相手の駒があれば、その駒を取ることができます。 ただし動ける範囲はそこまでです。
 途中に自分の駒があれば、動けるのはその手前までです。

成香(なりきょう)の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手成香が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手成香が動ける範囲

 香は成ると成香になります。
 成香は赤字の杏で表されます。動かし方は金と同じです。

香による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 香による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 香による詰みの例2

 香は、前方長距離を動けるため、例1のように、玉の頭から王手をすることで、相手玉は後ろに引けません。 また例2のように、遠くから成り込んで詰ますこともできます。

飛(ひ)の動かし方と詰みの例


 飛は飛車(ひしゃ)と書くことも多いです。 自動生成☆詰将棋では飛で統一します。
 飛は動ける範囲が広く、駒のサイズも大きいため、大駒と呼ばれます。

飛の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手飛が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手飛が動ける範囲

 飛は、前後左右に長距離動けます。
 途中に相手の駒があれば、その駒を取ることができます。 ただし動ける範囲はそこまでです。
 途中に自分の駒があれば、動けるのはその手前までです。

龍(りゅう)の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手龍が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手龍が動ける範囲

 飛は成ると龍になります。
 竜や龍王(りゅうおう)・竜王などとも書きますが、本記事では龍で統一します。
 駒は赤字の龍で表されます。動かし方は、飛の動きに加えて、斜めに1歩ずつ動けます。

飛による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 飛による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 飛による詰みの例2

 飛は、前後左右に長距離を動けるため、例1のように、玉の隣から王手をすることで、相手玉は離れるようには逃げられません。
 また例2は、実践でも見かけます。 飛の横利きを利用して、後ろから金で王手をかけて追い込んでいき、玉が飛の方に戻ってきたところを龍に成って詰まします。 覚えておいて損の無い形です。

角(かく)の動かし方と詰みの例


 角は動ける範囲が広く、駒のサイズも大きいため、大駒と呼ばれます。

角の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手角が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手角が動ける範囲

 角は、斜めに長距離動けます。
 途中に相手の駒があれば、その駒を取ることができます。 ただし動ける範囲はそこまでです。
 途中に自分の駒があれば、動けるのはその手前までです。

馬(うま)の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手馬が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手馬が動ける範囲

 角は成ると馬になります。
 駒は赤字の馬で表されます。 動かし方は、角の動きに加えて、前後左右に1歩ずつ動けます。

角による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 角による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 角による詰みの例2

 角は、斜めに長距離を動けるため、例1のように、離れた場所から詰ますことができます。
 また馬になると全方向に1歩は動けるため、例2のように、頭金と同等の詰ませ方が、左右を含めて盤の端にいる玉に対してできます。

歩(ふ)の動かし方と詰みの例


歩の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手歩が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手歩が動ける範囲

 歩は、正面に1歩のみ動けます。

と金(ときん)の動ける範囲


レベル16:本格的な3手詰【自動生成☆詰将棋】 先手と金が動ける範囲 レベル16:本格的な3手詰【自動生成☆詰将棋】 後手と金が動ける範囲

 歩は成るとと金になります。
 と金は赤字の「と」で表されます。動かし方は金と同じです。

歩(と金)による詰みの例


レベル16:本格的な3手詰【自動生成☆詰将棋】 歩(と金)による詰みの例1 レベル16:本格的な3手詰【自動生成☆詰将棋】 歩(と金)による詰みの例2

 歩は、不成でで動けなくなる範囲はありませんので、 基本的にはと金に成ることで、図のような詰みの形があります。

禁じ手:打ち歩詰め(うちふづめ)と二歩(にふ)


レベル16:本格的な3手詰【自動生成☆詰将棋】 禁じ手:打ち歩詰め レベル16:本格的な3手詰【自動生成☆詰将棋】 禁じ手:二歩

 歩の特殊ルールとして、禁じ手が2つあります。 打ち歩詰めと二歩です。
 打ち歩詰めは、持ち駒から歩を打った手で詰ますことです。 これは反則負けになります。 盤上の歩を動かす場合は、歩のまま詰ましても問題ありません。
 二歩は、同じ列に歩を2枚置くことです。 こちらも反則負けになります。 と金については問題ありません。


[PR]

【技術解説】自動生成の収束を早める工夫プログラマー向け実装解説


 詰将棋の解説は以上です。ぜひ遊んでみてください。
 ここからは、自動生成☆詰将棋の中で、自動生成を早く収束させる工夫について、技術解説をします。 その基礎となる部分はこの記事で解説していますので、 ぜひそちらもお読みください。

生成手順をランダム生成、品質向上、無駄駒削除の3ステップに


 自動生成☆詰将棋では、生成手順を以下の4ステップに分けました。 この工夫により、自動生成の収束を早め、また質の高い詰将棋が自動生成できています。
  1. 初期配置
  2. ランダム生成
  3. 品質向上
  4. 無駄駒削除

1.初期配置


 まず最初のステップとして、後手玉を配置します。 後手玉は原則として、初期位置で固定します。
 後手玉の位置を固定することで、最初から王手のかかる位置に駒を配置しないなどの工夫ができ、収束を早めています。

2.ランダム配置


 次のステップでは、ランダムに駒を配置していきます。
 そして、その盤面が詰むかどうかを調べます。 その結果によって、以下のように、処理を分岐します。
結果
次の候補
詰み:指定手数
次のステップへ
詰み:短手数
先手駒を減らす、後手駒を増やす
詰み:持ち駒余り
先手駒を減らす、後手駒を増やす
不詰・手数超過
先手駒を増やす、後手駒を減らす
不詰:打ち歩詰め
先手駒を減らす、後手駒を増やす

 駒を増減させる処理は、ランダムに駒を選んで配置したり持ち駒に増やしたり、逆にすでにある駒を削除することで実現しています。
 その他として、盤面に駒の占める割合が一定以上に達したら、後手玉以外をすべてやりなおします。
 試行回数が一定以上に達したら、ステップ1の後手玉の配置からやりなおします。
 これらにより、より早く、指定手数の詰将棋の問題に収束させることができます。

3.品質向上


 指定手数の詰みを発見したら、品質の向上を試行します。
 具体的には、ランダムに後手駒を増やし、結果が「良く」なれば採用、 指定手数で詰まなくなるなど「悪く」なれば元に戻します。
レベル16:本格的な3手詰【自動生成☆詰将棋】 冗長性削減  例えば、ステップ2で、この図のような3手詰が完成したとします。 これは初手▲1三香でも、▲1四香、▲1五香でも、▲1九香でも詰みます。


レベル16:本格的な3手詰【自動生成☆詰将棋】 冗長性あり▲1三香 レベル16:本格的な3手詰【自動生成☆詰将棋】 冗長性あり▲1五香

 このままでも詰将棋として成立はしていますが、正解が多く冗長です。 可能であれば工夫したいところです。


レベル16:本格的な3手詰【自動生成☆詰将棋】 冗長性削減▲1四歩  例えばこの図のように、ランダムに後手駒を追加している中で、偶然▽1四歩が追加されれば、 正解が▲1三香に限定されることになり、「良く」なったと判断して、採用します。
 何が「良い」かは議論のあるところですが、冗長性を減らせれば良いと考えます。

4.無駄駒削除


レベル16:本格的な3手詰【自動生成☆詰将棋】 無駄駒削除  ステップ3で完成した詰将棋において、▽4三歩は、有っても無くても関係ありません。 この詰将棋の問題においては、完全に無駄な駒です。
 ステップ4では、このような、無駄な駒を削除します。


 具体的には、後手玉以外の駒を1つずつ削除して、詰将棋を解き、結果が悪くならなければ採用します。 解けなくなるなど悪くなれば、削除した駒を元に戻して、次の駒の削除を試します。
 これらの手順を経て、問題は以下のように完成します。
レベル16:本格的な3手詰【自動生成☆詰将棋】 無駄駒削除

[PR]

まとめ


 本記事は、自動生成☆詰将棋Webアプリケーションのレベル16:本格的な3手詰です。
 将棋の読みの基本とされる3手詰。 将棋初心者を卒業し次のステップに向けて、読みを楽しみましょう。
 また、自動生成☆詰将棋の、問題の質を高めつつ、問題生成を早く収束させる工夫についても解説しました。
 ただし、問題の質を高めるといっても、プロ棋士の先生方が創られる芸術的な問題の質には到底およびません。 そのため、自動生成☆詰将棋に慣れて、より高品質な詰将棋に挑戦したい場合には、市販の[PR]詰将棋問題集の検討をおすすめします。

補足

  • 記事の校正/添削に生成AIの Anthropic Claude を利用しております。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseZen Antiqueを使用しております。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseNoto Sans Japaneseを使用しております。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseLimelightを使用しております。
  • (本記事公開後)Webブラウザーのサイトデータに「最後に表示された問題」を保存するようにしました。


カテゴリー:Webアプリケーション,自動生成☆詰将棋
[PR]