段・列・「見える」の確認
このページでも、横に並ぶ9マスを段(上から1〜9段目)、縦に並ぶ9マスを列(左から1〜9列目)と呼びます。候補の書き方や唯一候補法・隠れ唯一候補法・ロックされた候補はナンプレの解き方(基本)で説明済みなので、ここでは繰り返しません。
もう1つだけ言葉を足します。2マスが同じ段・同じ列・同じ3×3ブロックのどれか1つでも共有していれば、そのマスどうしは見える関係にあると呼びます。同じ段にあれば見える、同じ列にあれば見える、隣どうしでなくても同じブロックの中なら見える、という意味です。この先の3つの手筋は、すべて「どのマスとどのマスが見えるか」で成り立ちます。
難問で止まる場面 — ペア・トリプルの先に何を見るか
ロックされた候補、ネイキッドペア・トリプル、隠れペア・トリプルまで使い切っても候補が減らなくなったら、次にすべきことは新しい手筋を闇雲に探すことではなく、盤面の見方を切り替えることです。
まず、空いているマスのうち、候補がちょうど2つだけのマスを紙の上で数えてください。多くの難問はこの時点で候補2つのマスが盤面のあちこちに残っています。その1つ1つが、次の手筋の入口になります。候補が3つ以上のマスをいくら眺めても、この先の手筋は見つかりません。
次に、候補2つのマスを見るのをいったん離れて、1つの数字を選び、その数字が各段・各列にどれだけ絞られているかを数え直します。ある数字を選んだとき、ある段でその数字が入りうる列がわずか2つしかない、という段がいくつかあれば、そこが魚の手筋の材料になります。
この2つの見方——候補2つのマスを探す見方と、1つの数字が入りうる列を段ごとに数える見方——を切り替えられれば、この先の3つの手筋はどれも同じ盤面の中から見つかります。特別な形を暗記するより、この2つの数え方を体で覚えるほうが早く進みます。
XY-Wing — 候補2つの3マスをつなげる
候補2つのマスが見つかったら、まずXY-Wingを疑います。3マス使う手筋です。
1つ目のマスを軸とします。軸の候補は2つの数字で、たとえば上から3段目・左から5列目のマスの候補が「2・7」だったとします。この軸と見える関係にある、候補2つの別のマスを2つ探します。
1つ目の相手は、軸と同じ段にある上から3段目・左から8列目のマスで、候補が「2・9」だったとします。軸と1つだけ数字を共有しており、その数字は2です。もう1つの数字9が、あとで消す対象になります。
2つ目の相手は、軸と同じ列にある上から7段目・左から5列目のマスで、候補が「7・9」だったとします。軸との共有数字は7で、もう1つの数字はやはり9です。2つの相手が共有していない側の数字が同じ9で揃ったので、この3マスはXY-Wingの形になっています。
ここから、上から7段目・左から8列目のマスに注目します。このマスは、1つ目の相手(3段目・8列目)と同じ列8を共有し、2つ目の相手(7段目・5列目)と同じ段7を共有しています。つまりこのマスは、2つの相手の両方から見える位置にあります。もしこのマスに候補9が残っていれば、消せます。
理由はこうです。軸のマスは2か7のどちらかです。軸が2なら、同じ段にある1つ目の相手は2を取れないので9で確定します。軸が7なら、同じ列にある2つ目の相手は7を取れないので9で確定します。軸が2でも7でも、1つ目の相手か2つ目の相手のどちらかが必ず9になります。7段目・8列目のマスは、その両方から見えているので、どちらの9からも同じ扱いを受け、候補9を残すことができません。
この手筋は、軸が2つの相手のそれぞれと段・列・ブロックのどれか1つを共有していればよく、2つの相手どうしが見える関係である必要はありません。むしろ2つの相手が離れた位置にあるときほど、消せるマスが盤面の意外な場所に見つかります。
X-Wing — 魚の手筋の入口
XY-Wingを使っても動かなくなったら、次は数字を主語にして探すX-Wingです。
ある数字――ここでは3とします――について、上から2段目で3が入りうるマスが左から1列目と6列目の2か所しかなく、上から5段目でも3が入りうるマスがやはり1列目と6列目の2か所しかなかったとします。
このとき、1列目・6列目のうち、2段目・5段目以外にあるマスからは、候補3を消せます。
理由を数え方で確かめます。3は2段目のどこかで1列目か6列目のどちらかに入り、5段目のどこかでも1列目か6列目のどちらかに入ります。組み合わせは「2段目が1列目・5段目が6列目」か「2段目が6列目・5段目が1列目」の2通りしかありません。どちらの組み合わせでも、1列目の3はこの2段のどちらかが使い切り、6列目の3も同じくこの2段のどちらかが使い切ります。1つの列に3は1つしか入らないので、1列目にも6列目にも、2段目・5段目以外の段で3が入る余地は残りません。
段と列を入れ替えても同じ理屈が成り立ちます。ある数字が2つの列でそれぞれ同じ2つの段にしか入らないときも、その2段の他の列から同じ数字を消せます。
Swordfish — X-Wingの3本版
X-Wingの2段2列を、3段3列に広げたものがSwordfishです。各段が3列すべてを使っている必要はありません。
数字8について、上から2段目で8が入りうる列が1列目と4列目、5段目で8が入りうる列が4列目と9列目、8段目で8が入りうる列が1列目と9列目だったとします。1つの段だけを見ると、どの段も候補は2列にしか広がっていません。それでも3段をまとめると、8が入りうる列は1列目・4列目・9列目の3列だけに収まっています。
このとき、1列目・4列目・9列目のうち、2段目・5段目・8段目以外にあるマスからは、候補8を消せます。たとえば上から6段目の1列目や4列目に候補8が残っていれば消せます。
理由はX-Wingと同じ数え方の延長です。8はこの3段のそれぞれに必ず1つ入り、置ける場所は1列目・4列目・9列目の中に限られています。2段目は1列目か4列目、5段目は4列目か9列目、8段目は1列目か9列目のどちらかを取りますが、3段で3列を分け合う組み合わせを実際にたどると、1列目・4列目・9列目はこの3段のどれかに必ず割り当たり、余る列も余る段も出ません。結果としてこの3列の8は、この3段の中で使い切られてしまい、他の段には残りません。
探す順番 — XY-Wingから魚の手筋へ
難問で行き詰まったときは、次の順で探すと無駄がありません。
1. XY-Wing。 候補2つのマスを1つ見つけるだけで探し始められるので、盤面のどこからでも着手できます。見える関係にある候補2つのマスの組を、盤面を1周しながら探します。
2. X-Wing。 XY-Wingで動かなくなったら、1つの数字を選び、各段でその数字が入りうる列を数えます。2つの段で列がそろって2つに絞られていれば見つかります。
3. Swordfish。 X-Wingでも動かなくなったら、同じ数え方を3段に広げます。3段のうち候補の列が2つか3つに収まっている段を探し、合わせて3列に収まる組み合わせを探します。
この順にしているのは、XY-Wingが候補2つのマス1組だけで成立し、盤面のどこにあっても見つけやすい一方、X-WingとSwordfishは段や列を横断して数え直す手間が要るからです。手数の少ない探し方から先に試し、それで動かなくなったら手数のかかる探し方に移る、という順番です。ロックされた候補やペア・トリプルで削り切ってからこの3つに進むと、候補の数え間違いも減ります。
仮定法をいつ使うか — 難問までは要らない理由
難問までの盤面は、唯一候補法からSwordfishまでの手筋を積み上げれば、仮定せずに最後まで解けるように作っています。手筋の階梯のいちばん上にXY-Wing・X-Wing・Swordfishを置き、そこまでで解ける盤面だけを難問として選んでいるので、途中で手が止まって当てずっぽうに頼る必要はありません。
超難問は違います。あちらは、実装している手筋を全部当てても、それ以上どのマスも動かなくなった盤面をそのまま集めています。手筋の階梯の外側にある盤面なので、候補のつながりを長くたどるか、仮定して進めるやり方が要ります。
仮定は最後の手段です。唯一候補法からSwordfishまでで埋まるマスを残したまま仮定に入ると、戻る手間だけが増えます。紙の上で仮定するときは、いつもの候補の書き込みと混ざらないよう、印を分けてください。候補が2つのマスを1つ選び、一方の数字を薄い字か色を変えた鉛筆で書き込み、そこから先の書き込みもすべて同じ薄い字・同じ色で続けます。段・列・ブロックのどれかで数字が重なる、あるマスの候補が0になる、といった矛盾が出たら、その薄い字・その色の書き込みだけを消しゴムで消し、仮定する前の候補の状態に戻して、もう一方の数字で同じことをやり直します。仮定に入る前の候補を欄外に控えておくと、戻す作業がそのぶん速くなります。この手順の詳しい進め方は超難問にまとめています。
XY-Wing・X-Wing・Swordfishの3つを紙の上で使いこなせれば、難問の10枚は仮定せずに最後まで届きます。仮定が要るのは、その先の超難問に進んだときだけです。