mixy のアルゴリズムは数独の表出数(以後 Givens とよぶ)以外の空白セル(Empty cell)を対象として、 check というマクロにて、そのセルと同じ列、同じ行、同じブロックにすでに Givens があるかどうかを順次1から9までチェックするものである。
とりわけ同じブロックにあるかどうかのチェックは checkmate というマクロを別につくり、Givens があれば flag をたてて戻すようにした。この方法は後に、カラーナンプレとかジグザグナンプレとかに流用する場合このマクロだけを変更すれば容易に達成できた。
mixy_part は group_search というマクロでブロックを限定して候補の数字を見つけだすものだ。mixy では最後に各空白セルの候補の数をカウントする count_kosuu というマクロがついている。候補の数がひとつだとそのセルの数字(digit と呼ぶ)が特定できる。これがプログラムでは一番簡単にわかる探索法(のちに M-search とよぶ)なのだが、実際には、探しにくいので中級あるいは上級にランクされている探索法である。
0 件のコメント:
コメントを投稿