プログラミング勉強・サンプルコード
考え方
ナンプレを解くプログラミングをするにあたってどのようなアルゴリズムにするか考えていきたいと思います。とりあえずメモを書いたので載せておきます。
ナンプレのルールとして以下の3点があります。
@同じ行には同じ数字が入らない
A同じ列には同じ数字が入らない
B3×3のマス(上図T〜\)内に同じ数字が入らない
とりあえず簡単なものを作成しようと思うので下記のようにしたいと思います。
・各マスに対して@〜Bの判定をして1〜9の数字が入る可能性を確認する。
・候補が1つになったらマスに入る数字を確定する。
・すべてのマスの数字が確定するorマスの更新ができなくなると終了とする。
これではすべてのマスを埋められなくても終了となってしまいます。また、深く探索はしないので効率も悪くなってしまいます。そこはのちほど考えていきたいと思います。