ナンプレx-wing見つけ方 支援プログラム

X-wing法を適用するには、以下の条件2つが必要です。

  1. ある数字が入れるマスが2つだけの縦列が、2列ある。
  2. この時、ある数字が入れるマスの行が、同じである。

X-wing法で解くナンプレの例題

下の図は、X-wing法で解くナンプレの例題です。縦6列で9(ある数字)が入れるマスは赤丸の2か所。また、縦9列で9が入れるマスは赤丸の2か所です。9が入れるマスが、2つだけの列が2列あります。この赤丸を線で図のように結ぶとになるので、X-wing法と呼ばれます。X-wing法を使うナンプレの例題。既に埋められている数字は43個、空きマスは38個。

9が入れるマスが赤丸だけの理由

9が入れるマスが赤丸だけの理由を示す図現在、5つのが入っていますが、その行を横に見ていくと、縦6列と縦9列でのマスには9が入れません。

よって、縦6列と縦9列で9が入れるマスは、赤丸のD6、H6、D9、H9だけになります。

支援プログラムを使用する理由

x-wing法の理論は、それほど難しくないですが、x-wingのパターンを見つけるのは困難です。冒頭のある数字を見つけるのが困難です。

このある数字を見つける為に、支援プログラムを利用して、1から順に手当たり次第に調べていきます。

手順

ナンプレ盤面下の1から9のボタンを順に押していくと、レーザー発射法では解けない事がわかります。(レーザー発射法については、ナンプレ盤面で説明してありますが、どの縦列、横行にも白マスが2つ以上あるので、数字が決められない)

ナンプレ盤面へ行って、のボタンを押し、X-wing法を使います。何故、9なのかは後で説明します。盤面のjump前の位置に戻るボタンで、ここに戻ります。

X-wing法の理論と使用例

のボタンを押した下図で、X-wingの理論を説明。

D7に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だけ

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つが必要です。(縦列の場合)

  1. ある数字(この例では9)が入れるマスが2つだけの縦列が、2列ある。(6列のD6、H6。9列のD9、H9で計4マス)
  2. この時の2つの行が、同じである。(この例ではD行とH行)

数字のボタンを押した時に注目する事は、上記の条件に当てはまるパターンを探す事です。もしあれば、横の2行にその数字が入れなくなります。

x-wingのパターンを見つけるのは困難ですが、以下のように単純作業を繰り返せば、見つかります。1~9のボタンを順に押していきます。

1のボタンを押した時

1のボタンを押した時の盤面1のボタンを押したのが右図です。ここで、1が入れるマスが2つだけの縦列を探します。

1列、2列、7列が見つかりますが、横行が揃っている列の組み合わせはないので、x-wingは適用できません。それで、2のボタン、3のボタン、4のボタンと押していきます。

9のボタンを押した時

9のボタンを押した時の盤面9のボタンを押したのが右図です。ここで、9が入れるマスが2つだけの縦列を探します。

4列、6列、9列が見つかりますが、6列と9列は横行が揃っているので、x-wingが適用できます。D行、H行に9が入れなくなります。

ここに来て、ようやく、何故、9なのかが分かります。

x-wingのパターンを見つけても使えない時がある

何故、2はX-wingを使えないのか何故、2についてX-wingを使えないのか。

右図は2のボタンを押した時に、C7、C9、H7、H9で、x-wingのパターンを見つけた時の例です。

2はC7C9のどちらかに入るので、C3に2は入れません。

しかし、X-wing法に関係なく、上段左のブロックA1に2があるので、元々、C3に2は入れないのです。

H7H9についても、同様の事が言えます。

X-wing法を使った例題の解法手順

ナンプレ盤面で、X-wing法を適用し、D7をクリックし1を入力します。その後は、レーザー発射法だけです。

レーザー発射法の手順

下記の作業が面倒な方は、D7に1を入力した後、ナンプレ盤面の上のレーザー発射法の発動ボタンを押せば、瞬時に解答図までいけます。

  1. 1巡目。のボタン→I9,G1が1(右と下に←ヒントが表示されます)。のボタン→D9が3。 のボタン→I1が5。のボタン→D8が7。のボタン→I8が8。のボタン→D6,F7,H9が9。他の9も全て埋まります。
  2. 2巡目。のボタン→全ての2が確定。のボタン→全ての3が確定。のボタン→全ての6が確定。のボタン→全ての8が確定。個数の欄が9になっていない数字を押していけば、他も全て確定し、完了します。

X-wingの解答解答は右図になります。

ナンプレ問題盤面

ナンプレx-wing見つけ方を支援するjavaプログラムの概略。

  • ナンプレ盤面の下の数字(1~9)を押すと、レーザー発射法が自動表示され、押した数字が入れないマスは青色になります。
  • 行,列で、同じ数字の重複があると、盤面右と下に重複した数字が表示されます。ブロックでの重複は右下の黄色のマス。
  • 空きマスをclickすると、候補は(3,7だけ)と表示されます。
  • 一つの数字しか入らないマスがあれば、D5はNaked Single8だけと表示されます。行き詰まった時の奥の手。ニコリではマスミと呼びます。

clickしたマスの候補だけ

座標のマスの唯一の候補はNaked Singleだけ

clickしたマスにを連続入力:

 

ナンプレ盤面(9のボタンを押す)
個数
A
B
C
D
E
F
G
H
I



←盤面変更禁止チェックを入れると、その時、埋められているマスは変更不可になり、外せば再度、変更可能です。2つのボタンは、チェックが入っているとdisabledで、無効です。(文字が薄い)

textarea(Text box)は、直接編集可。左クリック→右クリック→全て選択→コピーできます。

ナンプレx-wing見つけ方支援プログラムのソースコード(270行)

最後まで読んでいただいて、ありがとうございました。