数独(すうどく)は、3×3のブロックに区切られた 9×9の正方形の枠内に1?9までの数字を入れるパズルです。1~9までの数字を入れていくのですが、同じ数字を縦、横、ブロックのなかに2回以上用いることはできません。名称の由来は「数字は独身に限る」の略らしいです。

ではプログラミングで数独を解いてみることにしましょう。

まずユーザーコントロールで以下のようなものを作成します。9個のTextBoxを貼り付けて1つのブロックを作っています。これを3×3個フォームに貼り付けます。

これをフォームに貼り付けます。

あとは座標を指定して数字を設定する、設定されている数字を取得する、縦列、横列、同じブロック内にすでに存在する数のリストを取得するメソッドを作ります。

縦と横、同じブロックに存在する数字はひとつだけなので、指定した場所の縦列、横列、ブロック内に存在する数以外のものがひとつしかないとその場所の値を確定することができます。

これで実際に問題どおりに数字を入力してボタンをクリックすると簡単な問題であれば解くことができます。しかし中級以上の問題は工夫が必要です。今回はこれまで。