さて、「Access で数独を解く」の準備部分はできた。
完成してないけど近々公開する。
基本アプローチは消去法で各欄に最初に全ての候補をテーブルに用意し、可能性の無い値を逐次消していくというもの。
まず、確定した欄の数値を同じ行・列・ブロックからそれ自身を削除するというのを実装した。
DS の「数字パズル」の簡単なものはこれだけで解けた。
でも難しかった問題を解かそうとすると途中で止まる。
続いて「行内で列が確定しないがエリアが確定するというものの反映」というロジックを実装しようとする。
・・・確定値として挙がらないのに行確定する数値があり、でもそれを反映して削除される候補が無い。。。
・・・しまった、「行・列・エリアでその数値を候補とする欄が唯一ならそれが確定値になる」というロジックを見落としていた(^^;
・・・ってな感じで作ってます。
完成してないけど近々公開する。
基本アプローチは消去法で各欄に最初に全ての候補をテーブルに用意し、可能性の無い値を逐次消していくというもの。
まず、確定した欄の数値を同じ行・列・ブロックからそれ自身を削除するというのを実装した。
DS の「数字パズル」の簡単なものはこれだけで解けた。
でも難しかった問題を解かそうとすると途中で止まる。
続いて「行内で列が確定しないがエリアが確定するというものの反映」というロジックを実装しようとする。
・・・確定値として挙がらないのに行確定する数値があり、でもそれを反映して削除される候補が無い。。。
・・・しまった、「行・列・エリアでその数値を候補とする欄が唯一ならそれが確定値になる」というロジックを見落としていた(^^;
・・・ってな感じで作ってます。
コメント