| ■11877 / ) |
Re[1]: 数独の問題を自動作成するプログラムについて |
□投稿者/ カンタービレ (137回)-(2007/12/23(Sun) 08:00:06)
|
■No11865 (うに さん) に返信 > はじめて質問させて頂きます。 > 今数独の問題を自動で作成するプログラムを作っています。 > その足がかりとしてまず9*9の二次元配列に > * 空いているマスに1〜9のいずれかの数字を入れる。 > * 縦・横の各列及び、太線で囲まれた3×3のブロックに同じ数字が複数入ってはいけない。 > のルールを守りながらランダムに数字を入れていくプログラムを作ったのですが
ロジックの考え方がそもそもよくないのではないかと思いマス。 goto文もやめてほしいデス。 そして基点(固定)となるものを必ずひとつは作っておくべきデス。 ブロック単位に1つは確定させておきたいデスし。 最初の値をセットして毎回hikaku()してるところも変デス。 forの2重ループの記述も{}が足りないのはなぜとか色々・・・。
Randを使うのは最初の確定すべき項目のみ、 その他は使える数字候補から選択していく、と考えるのが妥当かと思いマス。 まず答えを導けないことにはパズルとして成立しませんから 数独のアルゴリズムをもう一度整理してみることをお勧めしマス。
インターネットで検索すると数独のアルゴリズムも結構出てくると思いマスよ。
|
|