二つのハートのナンプレ問題をプログラムで解く

初期配置がハート型の数独の問題です。java支援プログラムを利用して、レーザー発射法とLocked Candidates法とNaked Single法を使って解きます。

支援プログラムの使い方の概略

ナンプレ盤面の下の数字(1~9)を押すと、レーザー発射法が自動表示され、その数字が入れないマスの背景は青、入れるマスは白になります。盤面右と下に←ヒントが表示されます。のボタンを押してみて下さい。

空きマスをクリックすると、「2,3,9だけ」のように、可能な候補が表示されます。

ナンプレ問題盤面

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

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



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

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

二つのハートのナンプレの解き方

レーザーで42マスが埋まり、Locked Candidatesで1マス、最後にNaked Singleで完成です。この3つの方法を使わないと解けません。

手順1 レーザー発射法

レーザー発射法使用後の盤面ナンプレ盤面下の1~9のボタンを押すと、盤面右と下に↑←ヒントが表示され、その行、列にボタンの数字が一意的に決まります。↑←が示すマスをクリックすれば、数字が入力できます。この操作を繰り返した結果が右の図。初期配置の20マスに22マスが加わり、42マスが埋まりました。

上記の作業が面倒な方は、下の「レーザー発射法の発動」ボタンを押せば、瞬時に右の図までいけます。

手順2 Locked Candidates法

Locked Candidates法の説明ナンプレ盤面下ののボタンを押して、上段左のブロックを見ます。空きマス(背景が白)が2個(B2C2)同じ列にあります。この2個のマスの先の別のブロック(中段左)に、空きマスがあります。⇒B2C2のどちらかに7が入る⇒縦列の関係から、F2に7が入れない⇒横F行で7が入れるのはF2,F3だけですから、F3の7が確定。

のボタンを押して、F3をクリックすれば、43マスが埋まります。「Locked Candidatesの発動」ボタンを押せば、Locked Candidates法を適応できるマスが、複数あっても、瞬時にマスを埋めます。

Locked Candidates法の適用条件については
ナンプレ支援プログラムLocked Candidates法 縦
ナンプレ支援プログラムLocked Candidates法 横

手順3 Naked Single法

ナンプレ問題盤面の上に『座標F2のマスの唯一の候補はNaked Singleで、8だけ』と表示されていると思います。この表示は、初期配置の時にはありませんでした。Locked Candidates法を使って43マスが埋まった時に、表示されました。Naked Single法は、いきなり使える事もありますが、ある程度、マスが埋まらないと使えない事もあります。

F2のマスに8を入力して下さい。(のボタンを押して、F2をクリック)『座標E1のマスの唯一の候補はNaked Singleで、3だけ』と表示されます。

この操作を繰り返せば、解答にたどり着きます。下の「Naked Singleの発動」ボタンを押せば、5回の操作を自動で行ないます。

二つのハートのナンプレ解答図

解答は下図になります。二つのハートのナンプレの解答図

Naked Single法とその理論についてはナンプレ支援プログラムNaked Single法で、説明していますが、人間の頭の中で作業するのは困難なので、プログラムに組み込みました。

ナンプレ盤面へ

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

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