数独(再挑戦)⑧ 必殺の一マスを見える化。そして総まとめ。

昨日は数独の解法において行き詰まり、禁断の「総当たり」に手を出した。
infoment.hatenablog.com
私の脳では、これが精いっぱい。
f:id:Infoment:20191209223609p:plain

あれこれ試したところ、現時点でのマクロでも正解に辿り着けない問題があった。完璧には、まだまだ届かぬようで。

そこで今回は、昨日のテーマでもあった「急所の一マス」がどこにあるか、見える化してみた。今日は本シリーズ最終回のため、全文を折りたたんで載せておく。

テストコードはこちら。

Sub test()
    Dim Sudoku As VBAProject.Sudoku
    Set Sudoku = New VBAProject.Sudoku
    ' 出題範囲をセット。
    Set Sudoku.SourceRange = Sheet1.Range("A1:I9")
    ' 解答貼り付け先をセット。
    Set Sudoku.DestinationRange = Sheet1.Range("K1:S9")
        
        ' 初期化。
        Sudoku.InitArray
        
        ' 解答貼り付け。
        Sudoku.SetAnswer
        
End Sub

出題がこちら。今回のために、既存の設問を改造した。
f:id:Infoment:20191209224606p:plain

解答の様子がこちら。
御覧の通り、黄色で塗りつぶされた箇所が、仮置きされたセルとなっている。
f:id:Infoment:20191209224915g:plain

実は一行一列目の6が無いと、このSudokuクラスでは解ききれない。
さらに、一行五列目の1があれば、総当たりすら必要ない。
たった2枚の有無で、ここまで違いが出るから驚きだ。

結局最後まで自動で解ききることは叶わなかったが、半年前より前進したので良しとしよう。

何か思いついたら、再々挑戦するかも。
ということで、今回のシリーズは、これでおしまいです。

参考まで。