Naked Single java支援プログラム

このjavaプログラムの使い方の概略:ナンプレ盤面の下の数字(1~9)を押すと、レーザー発射法が自動表示され、盤面右と下に←ヒントが表示されます。のボタンを押してみて下さい。空きマスをクリックすると、「2,3,7だけ」のように、可能な候補が表示されます。

ナンプレ問題盤面

clickしたマスの候補だけ
座標のマスの唯一の候補はNaked Singleでだけ
clickしたマスにを連続入力:

ナンプレ盤面
A
B
C
D
E
F
G
H
I



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

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

Naked Single(裸のシングル)法の解き方

どういう方法(Locked Candidates法、Naked Single法、X-wing法など)を使えば良いか分からないので、まず、レーザー発射法でマスを埋めていきます。「ナンプレ盤面」という文字の下の1から9までのボタンを押していきます。その数字の入れないマスの背景は青、入れるマスは白になります。横の行、縦の列、3×3のブロックのそれぞれで、白マスが一つしかない場合、そのマスの数字が確定します。

解法手順1 レーザー発射法

レーザー発射法が終わった段階下記の作業が面倒な方は、下のボタンを押せば、レーザー発射法で、瞬時に右図までいけます。jump前の位置に戻るボタンで、この位置に戻ります。

  1. 1巡目。のボタン→中段右のE8が1。のボタン→I6が2、その他の全ての2が確定します。のボタン→G2が3、I4が3、D5が3。のボタン→B9が4。のボタン→F1が5。のボタン→F5が6。のボタン→G7が7。のボタン→E2が8。のボタン→D9、E5、I8が9。
  2. 2巡目。のボタン→G4が1。のボタン→I3が5。

56マスが埋まりましたが、これ以上、レーザー発射法は使えません。上図。Locked Candidates法も使えません。

この後は、奥の手Naked Singleを使います。もう、お気づきかも知れませんが、座標A1のマスの唯一の候補はNaked Singleで4だけと表示されています。

解法手順2 Naked Single

81マスが埋まった解答図

  1. のボタンを押して、)A1のマスをクリックします。候補数字に「4だけ」と表示されますが、「4だけが可能」という意味です。A1に4を入力して、0のボタンを押して下さい。
  2. 座標A2のマスはNakedSingleで6だけ」と表示されます。A2をクリックして、6を入力します。
  3. 座標A7のマスはNakedSingleで3だけ」と変化します。Naked Singleを続けても、途中で、レーザー発射法を使っても解答に、たどり着けます。上図が解答。

Naked Single法とは、その理論

Naked-Singleの説明図右図はNaked-Singleの説明図です。A1のマスに注目します。左上のブロックには、2、3、5、8、9が入っています。横A行には1が、縦1列には6、7が入っています。従って、この八つの数字以外の4がA1に入る事が確定します。これが、Naked Singleです。ニコリではマスミと呼びます。

しかし、この時点での空きマスは25個あります。その一つ一つを目で確認していくのは、しんどい作業です。それで、奥の手として、プログラムにNaked Singleを組み込みました。

Locked CandidatesやX-wingは、慣れれば、対応できるかが分かります。x-wing見つけ方

Naked Singleは、これらの方法を試した後の、行き詰まった時の上級編の解き方です(奥の手)。

補足説明

Naked-Singleの途中 解法手順1 レーザー発射法の1.で3のボタンを押した時、右図のようになったと思います。(46マスが埋まった状態)残りの3が入るのは、2箇所のか、2箇所のです。これは、レーザー発射法では決まりません。しばらくは、3のボタンを押すのは意味がありません。この問題の場合は、そのうち、Naked Singleで、A7に3が入る事が確定します。

X-wing

X-wing ただし、右図のように、中段中に空きマスがある場合は、A6かB6に3が入るので、D6に3は入れない。→D5の3が確定します。これが、X-wingと呼ばれている方法で、ある数字が入れるマスがX字になっている事が名前の由来です。

X-wing法とその理論についてはX-wing法 ナンプレ支援プログラムの説明へ。

ナンプレ盤面へ

ナンプレ解法javaプログラムのソースコード(270行)

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