Naked Single java支援プログラム
このjavaプログラムの使い方の概略:ナンプレ盤面の下の数字(1~9)を押すと、レーザー発射法が自動表示され、盤面右と下に←ヒントが表示されます。4のボタンを押してみて下さい。空きマスをクリックすると、「2,3,7だけ」のように、可能な候補が表示されます。
ナンプレ問題盤面
clickしたマスの候補はだけ
座標のマスの唯一の候補はNaked Singleでだけ
clickしたマスにを連続入力:を
Naked Single(裸のシングル)法の解き方
どういう方法(Locked Candidates法、Naked Single法、X-wing法など)を使えば良いか分からないので、まず、レーザー発射法でマスを埋めていきます。「ナンプレ盤面」という文字の下の1から9までのボタンを押していきます。その数字の入れないマスの背景は青、入れるマスは白になります。横の行、縦の列、3×3のブロックのそれぞれで、白マスが一つしかない場合、そのマスの数字が確定します。
解法手順1 レーザー発射法
下記の作業が面倒な方は、下のボタンを押せば、レーザー発射法で、瞬時に右図までいけます。jump前の位置に戻るボタンで、この位置に戻ります。
- 1巡目。1のボタン→中段右のE8が1。2のボタン→I6が2、その他の全ての2が確定します。3のボタン→G2が3、I4が3、D5が3。4のボタン→B9が4。5のボタン→F1が5。6のボタン→F5が6。7のボタン→G7が7。8のボタン→E2が8。9のボタン→D9、E5、I8が9。
- 2巡目。1のボタン→G4が1。5のボタン→I3が5。
56マスが埋まりましたが、これ以上、レーザー発射法は使えません。上図。Locked Candidates法も使えません。
この後は、奥の手Naked Singleを使います。もう、お気づきかも知れませんが、座標A1のマスの唯一の候補はNaked Singleで4だけと表示されています。
解法手順2 Naked Single
- (4のボタンを押して、)A1のマスをクリックします。候補数字に「4だけ」と表示されますが、「4だけが可能」という意味です。A1に4を入力して、0のボタンを押して下さい。
- 「座標A2のマスはNakedSingleで6だけ」と表示されます。A2をクリックして、6を入力します。
- 「座標A7のマスはNakedSingleで3だけ」と変化します。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は、これらの方法を試した後の、行き詰まった時の上級編の解き方です(奥の手)。
補足説明
解法手順1 レーザー発射法の1.で3のボタンを押した時、右図のようになったと思います。(46マスが埋まった状態)残りの3が入るのは、2箇所のaか、2箇所のbです。これは、レーザー発射法では決まりません。しばらくは、3のボタンを押すのは意味がありません。この問題の場合は、そのうち、Naked Singleで、A7に3が入る事が確定します。
X-wing
ただし、右図のように、中段中に空きマスがある場合は、A6かB6に3が入るので、D6に3は入れない。→D5の3が確定します。これが、X-wingと呼ばれている方法で、ある数字が入れるマスがX字になっている事が名前の由来です。
X-wing法とその理論についてはX-wing法 ナンプレ支援プログラムの説明へ。
ナンプレ解法javaプログラムのソースコード(270行)
最後まで読んでいただいて、ありがとうございました。