ハートの模様の数独の問題をプログラムで解く

初期配置がハートの模様の数独の問題です。レーザー発射法を使ってから、Naked Single法(裸のシングル)を2回使います。

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

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

ナンプレ問題盤面

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

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



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

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

ハートの模様のナンプレの解き方

レーザー発射法使用後の盤面まず、レーザー発射法を使って、盤面を埋めます。ナンプレ盤面下の1~9のボタンを押すと、盤面右と下に←ヒントが表示されます。その行、列にボタンの数字が一意的に決まります。その結果が右の図。

レーザー発射法の手順

  1. のボタン→C8,F9,H1に2。のボタン→A1,C5,H9に5。のボタン→C7に6。のボタン→D6,G8,I3に7、全ての7が確定します。のボタン→B9,F7に9。
  2. のボタン→A3,B4,G2,F5に1。のボタン→A8,B6に3。のボタン→A9,B1に8。のボタン→A2に9、全ての9が確定します。
  3. のボタン→全ての1が確定します。のボタン→H7に3。のボタン→D8,H5に6。のボタン→H8,I2に8。
  4. のボタン→H2,C3,F1に4。のボタン→C2に3。57マスが埋まりました。

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

Naked Single法

ナンプレ問題盤面の上に『座標A5のマスはNaked Singleで、4だけ』と表示されていると思います。この表示は、初期配置の時にはありませんでした。レーザー発射法を使っていく途中で、表示されました。Naked Single法は、いきなり使える事もありますが、ある程度、マスが埋まらないと使えない事もあります。

A5のマスに4を入力して、1~9のボタンをクリックして下さい。『座標D3のマスはNake Singleで、8だけ』と表示されます。D3のマスに8を入力して、のボタンを押して下さい。『D7のマスはNake Singleで、4だけ』の表示に従うか、←ヒントで進めるか。どちらでも、解答にたどり着きます。

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

ハートの模様の数独 解答

解答は下図になります。ハートの模様の数独の問題の解答

ナンプレ盤面へ

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

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