エクセルでナンプレを自動化してみた!
前回はピクロスの最初の工程を自動化してみたのですが、しているナンプレのゲームがすべて終わってしまったので、 似ている遊びでナンプレを自動化してみたらどうだろうと思ったので、エクセルで作ってみました。 この問題で試してみました。 まずナンプレと言えば、横・縦、3×3の枠で同じ数字が重ならないようにするゲームですが、 それぞれ横と縦と3×3でどの数字が使用されているかを調べていきます。 これが横の使用されている数字を表にしたものです。 最初は関数で引っ張っていたのですが、数式が邪魔だったので、マクロで自動入力するようにしました。 これが縦に使用されている数字を表にしたものです。 これは3×3の枠で使用されている数字を表にしたものですが、1 2 34 5 67 8 9と枠を順番付けしてそれを1列に並び変えています。 次に上の3つを使って、9×9の計81個のマス一つ一つにどの数字が入る可能性があるかを計算していきます。 そのために、上の表で同じマスの場所がすべて空白の箇所を調べて下の表に反映させました。 1つのマス毎の入る可能性のある数字を調べることが出来たので、 次はこの中から1つしか数字が入らない箇所を見つけます。 まず1マス毎を見ていきます。 例えば、「12」の箇所が 1 になっています。上の表を見ると「12」の列は 4 しか数字が入らないことが分かりました。 このようにして、1つしか入る可能性がない箇所を見つけ、 に入力していきます。 他にも条件として、1マス毎だけでなく、行ごと、列ごと、3×3の枠ごとにも可能性を見つけていきます。 これが行ごとの表です。 これが列ごとで、 これが、枠ごとになります。 全体がこんな感じです。 右下の方にある、青っぽい枠をクリックすると、サーチを開始してくれます。 このように自動化できたのですが、一つ問題点が出てきてしまいました。
2019/05/14 17:51