プログラムな日常>ウェブプログラム作品集>
ヒント付ナンプレ
(number playing)
preference

一本道の問題
102000003
400000567
030600041
000060015
085014000
021700409
200800900
004002050
000040120
100054802
020301050
503029604
002100045
014070320
350002100
607210503
030006080
905430001
000700100
004003080
050090002
300107020
006040800
080905004
400020030
070600500
001008000
102304500
600000003
000020000
010206030
060070050
070503010
000080000
500000004
001705608
012340000
400050060
700000100
800200000
940060078
000004009
009000007
070010002
000076580

初歩の問題
102034050
000600002
070500300
300760005
005000100
700085004
003007060
900006000
060320507
012300000
000000405
000006007
008009000
003601200
000800900
700900000
405000000
000002630
000700000
003006500
040010070
070000009
006000300
400000010
010090040
005300200
000002000
012300000
400050060
700000100
800200000
040060070
000004009
009000007
070010002
000006580
100020003
040005000
006000700
000700030
500010004
010008000
009000200
000300060
200050001

かなり難しい問題
100000200
030045000
000600007
005700040
010060080
060002300
300001000
000580090
004000005
010000000
203050000
400620005
801060000
030000040
000070903
600039004
000040807
000000090
010000000
203004000
050300600
004020070
000705000
060080400
007009020
000600108
000000060
001000300
020608000
305000008
040002010
000070000
030500090
700000804
000807050
009000600
010000020
300040005
000602000
009000700
580070064
004000900
000509000
100080003
020000010

非常に難しい問題
001200030
040030001
200010000
600500000
078000290
000008007
000050003
900060010
010003500
000200070
000040005
380005000
820400900
000000000
001003067
000100052
700050000
060008000
000100000
006020000
050003400
090005300
040000050
001600020
002500070
000030800
000004000
000000000
002300600
014002070
050600300
000000000
001007040
080500960
009004800
000000000
010000600
020000900
000075400
032100000
000000000
000008590
004620000
005000030
003000080

複数の解がある問題
600100002
085000040
000090070
000309008
002000300
500608000
040070000
060000180
700003009
000800290
006000008
010053000
080000300
070000050
005000060
000910040
300000500
024006000
001000300
020608000
305000008
040002010
000000000
030500090
700000804
000807050
009000600
302000600
150280340
800306021
000020700
213040860
008060200
680900000
030650082
020000906
030000400
500206000
000080001
070000080
009030700
002000050
400070000
000105009
008000060

【使い方】
  1. 1~9の何れかの数字を全てのマス(9×9)に入れます。同じ行に同じ数字は入れません。同じ列に同じ数字は入れません。 9個ずつの正方形で括られる9個のブロックの同じものの中に、同じ数字は入れません。
  2. 【単一選択】特定のマスに入れるべき数字が一意に決まる場合があります。これには次の4つの場合が考えられます。
     1.特定の行に入れるべき特定の数字の位置が、その一か所しか許されない場合。
     2.特定の列に入れるべき特定の数字の位置が、その一か所しか許されない場合。
     3.特定の(正方形)ブロックに入れるべき特定の数字の位置が、その一か所しか許されない場合。
     4.特定の(小さな)マスに入れるべき数字が、ある一つの数字以外は許されない場合。
    以上の4つの場合がどこかにあれば、それを最優先して埋めて行きます。画面では紺色の枠で誘導されます。
  3. 【二分岐】上の条件で特定されるものがどこにもない状態というのも出現する場合があります。その場合は次の4つの場合を探します。
     1.特定の行に入れるべき特定の数字の位置が、二か所しか許されない場合。
     2.特定の列に入れるべき特定の数字の位置が、二か所しか許されない場合。
     3.特定の(正方形)ブロックに入れるべき特定の数字の位置が、二か所しか許されない場合。
     4.特定の(小さな)マスに入れるべき数字が、二つの数字以外は許されない場合。
    以上の4つの場合がどこかにあれば(と言うか、あるはずです)、それを次善の策とし、どちらかを選びます。画面では赤い枠で誘導されます。
  4. 単一選択のみで進んだ場合には、(答えが一つだけあるまともな問題の場合には)必ず答えに着きます。
  5. 二分岐があった場合、もし間違った道であったなら、分岐の箇所に戻ってやり直さなければならない場合があります。
  6. 以上がゲーム(と言うか課題)のルールで、ここからがソフトの使い方です。問題はまず "buffer" と名付けたボックスに入れなければなりません。 これはテキストボックスとして直接書き込んでも良いし、どこからかコピー、ペーストで持ってくることもできます。 テキストボックスにおいて、ゼロと空白とは同じ意味ですが、"clear zero" ボタンを使用して、ゼロを空白にすることもできます。 このテキストボックスにもってきたデータは、"↑ set as initial" ボタンを押すと、課題として設定されます。 また、ソフトのすぐ下に置いている課題集は、どれかをワンクリックすると、それだけでボックスと課題とに設定されます。
  7. 課題(初期条件)はマスにおいて茶色っぽい数字で示されます。後から書き入れた数字は青っぽいものになります。
  8. 単一選択および二分岐において目をつけるべき4つの条件を上に示しましたが、その内、どれを優先して見るかを "preference" のコンボボックスで選ぶことができます。 デフォルトでは行、列、ブロック、マス(に入れる数字)の順の自動解答になっています。
  9. このような状態で "step" を押すと、好ましい手を一個ずつ見つけて進むことができます。
  10. 単一選択にせよ、二分岐にせよ、目のつけどころは複数ある場合が多いです。どこに目をつけるかを右側のリストボックスで選択できます。 各限定のもとに、マスや数字を選択してください。
  11. "auto" を押すと、単一選択のところは自動で連続解答してしまいます。あとは二分岐だけを選びます。
  12. それも面倒な時は、"fwd" によって、二分岐も適当に選んで進みます。
  13. 行き詰った場合、また、答えを得た(81個全て埋められた)が、途中に二分岐があって他の可能性も疑う場合は、"ret" で、最後の分岐まで戻ることができます。
  14. 履歴は左下の青いボックスにでてきますが、選択を表わす文字の4文字目に ">" がある場合、それは二分岐を表します。
  15. 以上の説明で、最も手早いやり方は、"fwd" と "ret" とを交互に押すことでしたが、この目的は "express" を押すことで一気にできます。
  16. ここまでで、各マスの状態は、あくまで最終状態(それは未完の失敗作かも知れない)なので、 右側のリストボックスの数字(答えが1つだけなら、1と出ている)をクリックして答えを得ます。 答えが複数ある問題にも対応しています。
  17. "preference" のコンボボックスはまた、地道に問題を解きたいという要求にも対応しています。 具体的には、"no gard"、"no guide"、"no hint" の3メニューがあります。
  18. "no gard" は本当に何の愛想もないです。どんな間違いをしても放って置かれます。
  19. "no guide" では、同じ行に同じ数字を入れた、同じ列に同じ数字を入れた、同じブロックに同じ数字を入れた、の3つの明らかな間違いが拒絶されます。
  20. 何に優先して解決するかの基準は上に示しましたが、これに合わない行為全てが、"no hint" では拒絶されます。 このモードで頑張ってみて、飽きてきたら、自動で解を得るのが一つのやり方です。

(2024/5/24) 時間がかかり過ぎてエラーになることがあったので、試行を10回で切り上げる "express10" を追加しました。 そういう時は、これを繰り返して押して下さい。