二つのハートのナンプレ問題をプログラムで解く
初期配置がハート型の数独の問題です。java支援プログラムを利用して、レーザー発射法とLocked Candidates法とNaked Single法を使って解きます。
支援プログラムの使い方の概略
ナンプレ盤面の下の数字(1~9)を押すと、レーザー発射法が自動表示され、その数字が入れないマスの背景は青、入れるマスは白になります。盤面右と下に←ヒントが表示されます。6のボタンを押してみて下さい。
空きマスをクリックすると、「2,3,9だけ」のように、可能な候補が表示されます。
ナンプレ問題盤面
clickしたマスの候補はだけ
座標のマスの唯一の候補はNaked Singleでだけ
clickしたマスにを連続入力:を
二つのハートのナンプレの解き方
レーザーで42マスが埋まり、Locked Candidatesで1マス、最後にNaked Singleで完成です。この3つの方法を使わないと解けません。
手順1 レーザー発射法
ナンプレ盤面下の1~9のボタンを押すと、盤面右と下に↑←ヒントが表示され、その行、列にボタンの数字が一意的に決まります。↑←が示すマスをクリックすれば、数字が入力できます。この操作を繰り返した結果が右の図。初期配置の20マスに22マスが加わり、42マスが埋まりました。
上記の作業が面倒な方は、下の「レーザー発射法の発動」ボタンを押せば、瞬時に右の図までいけます。
手順2 Locked Candidates法
ナンプレ盤面下の7のボタンを押して、上段左のブロックを見ます。空きマス(背景が白)が2個(B2,C2)同じ列にあります。この2個のマスの先の別のブロック(中段左)に、空きマスがあります。⇒B2,C2のどちらかに7が入る⇒縦列の関係から、F2に7が入れない⇒横F行で7が入れるのはF2,F3だけですから、F3の7が確定。
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を入力して下さい。(8のボタンを押して、F2をクリック)『座標E1のマスの唯一の候補はNaked Singleで、3だけ』と表示されます。
この操作を繰り返せば、解答にたどり着きます。下の「Naked Singleの発動」ボタンを押せば、5回の操作を自動で行ないます。
二つのハートのナンプレ解答図
解答は下図になります。
Naked Single法とその理論についてはナンプレ支援プログラムNaked Single法で、説明していますが、人間の頭の中で作業するのは困難なので、プログラムに組み込みました。
ナンプレ解法javaプログラムのソースコード(270行)
最後まで読んでいただいて、ありがとうございました。