- ベストアンサー
C#で数独の問題作成プログラムを作ろう!
- C#で数独の問題を作成するプログラムを作りたいです。途中で止まってしまいます。
- 数独についてはhttp://gdb.on.arena.ne.jp/PZ/PLACE/を参考にしています。
- 途中で止まる原因がわかる方がいましたら、原因を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
原因判明。 例えば途中までのデータが 3 2 5 6 1 8 4 9 7 7 9 8 2 4 5 6 1 3 1 6 4 3 9 7 5 8 2 8 1 3 9 6 2 7 4 5 9 4 2 7 8 1 3 6 ○ となったとしよう。X[4,4]には何を入れたらよいか? 1 6 5 2 9 4 8 7 3 9 3 8 5 7 6 1 2 4 2 7 4 3 8 1 6 9 5 5 9 1 6 2 8 3 4 7 6 4 2 9 5 7 ○ × × X[6,4]に入れることが出来る数字は何?
その他の回答 (3)
- himajin100000
- ベストアンサー率54% (1660/3060)
勘違いだったみたい。撤回。whileの直後にあるね
- himajin100000
- ベストアンサー率54% (1660/3060)
#1のソースは読んでないけど。 途中で止まる原因についてヒント出しておくよ。 x = 1,y = 1,z = 1って3つの代入文は何のためにあるんだろうね。 「フラグ立てておいて,その地点では選出しなおさずチェックだけにしておいて,全てのチェックが終わった後にどれかが1ならば,ランダムに選びなおし」 ならわかるんだけど 「一致しなかったときランダムに選びなおしてフラグを立てる。【で元に戻さない】」の? あと,多分選びなおした後の数字についてはチェックしてないのかな?これ。 #メソッド名が「比較」なんだから 「選びなおし」は別メソッドにしようぜ?
- cametan_42
- ベストアンサー率62% (163/262)
ええとですね。 こう言う場合は「他人が書いたソースコードを読んでみる」と言うのが一番なのです。 誰の?と思うかもしれませんが、そう言う事が可能なように「オープンソースソフトウェア」ってのがあるんですね。全てのソフトウェアのコードが商用製品みたいに「ブラックボックス」だったら誰のソースも参考に出来ませんが、そう言う「不都合を避ける」為にフリーソフトウェア運動とか、オープンソース運動、ってのがあるのです。お分かりでしょうか? オープンソースで「数独」のソースも公開されています。ダウンロードして調べてみてください。ANSI Cで書かれている模様です。 Sudoku ホームページ: http://www.laurasia.com.au/sudoku/ そこに「Downloads:」ってのがある筈です。一つはUnix用のSudokuのソースコード、もう一つはMicrosoft Windows用のソースとバイナリです。 ソースコードを読んで頑張って勉強してみてください。
お礼
回答有難う御座います。値を入れることが出来ない状況が発生していたわけですね。 何回か繰り返して進展がないなら一行戻ってやり直すように 書き直した所上手くいくようになりました。 これで丸一日悩んでいましたがようやく次に進めそうです。 本当に有難う御座いました。