ナンプレx-wing見つけ方 支援プログラム
X-wing法を適用するには、以下の条件2つが必要です。
- ある数字が入れるマスが2つだけの縦列が、2列ある。
- この時、ある数字が入れるマスの行が、同じである。
X-wing法で解くナンプレの例題
下の図は、X-wing法で解くナンプレの例題です。縦6列で9(ある数字)が入れるマスは赤丸の2か所。また、縦9列で9が入れるマスは赤丸の2か所です。9が入れるマスが、2つだけの列が2列あります。この赤丸を線で図のように結ぶとXになるので、X-wing法と呼ばれます。
9が入れるマスが赤丸だけの理由
現在、5つの9が入っていますが、その行を横に見ていくと、縦6列と縦9列で━のマスには9が入れません。
よって、縦6列と縦9列で9が入れるマスは、赤丸のD6、H6、D9、H9だけになります。
支援プログラムを使用する理由
x-wing法の理論は、それほど難しくないですが、x-wingのパターンを見つけるのは困難です。冒頭のある数字を見つけるのが困難です。
このある数字を見つける為に、支援プログラムを利用して、1から順に手当たり次第に調べていきます。
手順
ナンプレ盤面下の1から9のボタンを順に押していくと、レーザー発射法では解けない事がわかります。(レーザー発射法については、ナンプレ盤面で説明してありますが、どの縦列、横行にも白マスが2つ以上あるので、数字が決められない)
ナンプレ盤面へ行って、9のボタンを押し、X-wing法を使います。何故、9なのかは後で説明します。盤面の ボタンで、ここに戻ります。
X-wing法の理論と使用例
9のボタンを押した下図で、X-wingの理論を説明。
D7に9は入れない
縦の6列と9列を見ると、9の入れるマス(青ではなく白色)は、それぞれ2箇所だけです。
6列での9の入り方は以下の2つのケースがあります。
- ケース青:D6に9が入ると、横D行の関係でD9に9が入れなくなり、H9に9が入ります。
- ケース橙:H6に9が入ると、横H行の関係でH9に9が入れないので、D9に9が入ります。
どちらのケースでも、D6かD9に9があるので、D7に9は入れなくなります。
D6,D9,H6,H9の4マスを結ぶと、X字になっている事がX-wingの名前の由来です。
D7に入れるのは1だけ
ここで、縦の7列には、6,3,8,7が、横のD行には、2,4,5があります。また、X-wingでD7には9が入れません。つまり、D7に入れるのは1だけです。
X-wing法のパターンを見つけたとしても、上記の確認をするのは、結構大変です。このプログラムでは、D7のマスをクリックすると、「1,9,だけ」と表示され、X-wing法と合わせて、1しか入れない事が分かり、D7に1が確定します。
x-wingのパターンを見つける
X-wingのパターンを適用するには、以下の条件2つが必要です。(縦列の場合)
- ある数字(この例では9)が入れるマスが2つだけの縦列が、2列ある。(6列のD6、H6。9列のD9、H9で計4マス)
- この時の2つの行が、同じである。(この例ではD行とH行)
数字のボタンを押した時に注目する事は、上記の条件に当てはまるパターンを探す事です。もしあれば、横の2行にその数字が入れなくなります。
x-wingのパターンを見つけるのは困難ですが、以下のように単純作業を繰り返せば、見つかります。1~9のボタンを順に押していきます。
1のボタンを押した時
1のボタンを押したのが右図です。ここで、1が入れるマスが2つだけの縦列を探します。
1列、2列、7列が見つかりますが、横行が揃っている列の組み合わせはないので、x-wingは適用できません。それで、2のボタン、3のボタン、4のボタンと押していきます。
9のボタンを押した時
9のボタンを押したのが右図です。ここで、9が入れるマスが2つだけの縦列を探します。
4列、6列、9列が見つかりますが、6列と9列は横行が揃っているので、x-wingが適用できます。D行、H行に9が入れなくなります。
ここに来て、ようやく、何故、9なのかが分かります。
x-wingのパターンを見つけても使えない時がある
何故、2についてX-wingを使えないのか。
右図は2のボタンを押した時に、C7、C9、H7、H9で、x-wingのパターンを見つけた時の例です。
2はC7かC9のどちらかに入るので、C3に2は入れません。
しかし、X-wing法に関係なく、上段左のブロックA1に2があるので、元々、C3に2は入れないのです。
H7とH9についても、同様の事が言えます。
X-wing法を使った例題の解法手順
ナンプレ盤面で、X-wing法を適用し、D7をクリックし1を入力します。その後は、レーザー発射法だけです。
レーザー発射法の手順
下記の作業が面倒な方は、D7に1を入力した後、ナンプレ盤面の上のレーザー発射法の発動ボタンを押せば、瞬時に解答図までいけます。
- 1巡目。1のボタン→I9,G1が1(右と下に←ヒントが表示されます)。3のボタン→D9が3。 5のボタン→I1が5。7のボタン→D8が7。8のボタン→I8が8。9のボタン→D6,F7,H9が9。他の9も全て埋まります。
- 2巡目。2のボタン→全ての2が確定。3のボタン→全ての3が確定。6のボタン→全ての6が確定。8のボタン→全ての8が確定。個数の欄が9になっていない数字を押していけば、他も全て確定し、完了します。
解答は右図になります。
ナンプレ問題盤面
ナンプレx-wing見つけ方を支援するjavaプログラムの概略。
- ナンプレ盤面の下の数字(1~9)を押すと、レーザー発射法が自動表示され、押した数字が入れないマスは青色になります。
- 行,列で、同じ数字の重複があると、盤面右と下に重複した数字が表示されます。ブロックでの重複は右下の黄色のマス。
- 空きマスをclickすると、候補は(3,7だけ)と表示されます。
- 一つの数字しか入らないマスがあれば、D5はNaked Singleで8だけと表示されます。行き詰まった時の奥の手。ニコリではマスミと呼びます。
clickしたマスの候補はだけ
座標のマスの唯一の候補はNaked Singleでだけ
clickしたマスにを連続入力:を
ナンプレx-wing見つけ方支援プログラムのソースコード(270行)
最後まで読んでいただいて、ありがとうございました。