• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数独の問題作成)

C#で数独の問題作成プログラムを作ろう!

このQ&Aのポイント
  • C#で数独の問題を作成するプログラムを作りたいです。途中で止まってしまいます。
  • 数独についてはhttp://gdb.on.arena.ne.jp/PZ/PLACE/を参考にしています。
  • 途中で止まる原因がわかる方がいましたら、原因を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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]に入れることが出来る数字は何?

tsukasa86
質問者

お礼

回答有難う御座います。値を入れることが出来ない状況が発生していたわけですね。 何回か繰り返して進展がないなら一行戻ってやり直すように 書き直した所上手くいくようになりました。 これで丸一日悩んでいましたがようやく次に進めそうです。 本当に有難う御座いました。

その他の回答 (3)

回答No.3

勘違いだったみたい。撤回。whileの直後にあるね

回答No.2

#1のソースは読んでないけど。 途中で止まる原因についてヒント出しておくよ。 x = 1,y = 1,z = 1って3つの代入文は何のためにあるんだろうね。 「フラグ立てておいて,その地点では選出しなおさずチェックだけにしておいて,全てのチェックが終わった後にどれかが1ならば,ランダムに選びなおし」 ならわかるんだけど 「一致しなかったときランダムに選びなおしてフラグを立てる。【で元に戻さない】」の? あと,多分選びなおした後の数字についてはチェックしてないのかな?これ。 #メソッド名が「比較」なんだから 「選びなおし」は別メソッドにしようぜ?

回答No.1

ええとですね。 こう言う場合は「他人が書いたソースコードを読んでみる」と言うのが一番なのです。 誰の?と思うかもしれませんが、そう言う事が可能なように「オープンソースソフトウェア」ってのがあるんですね。全てのソフトウェアのコードが商用製品みたいに「ブラックボックス」だったら誰のソースも参考に出来ませんが、そう言う「不都合を避ける」為にフリーソフトウェア運動とか、オープンソース運動、ってのがあるのです。お分かりでしょうか? オープンソースで「数独」のソースも公開されています。ダウンロードして調べてみてください。ANSI Cで書かれている模様です。 Sudoku ホームページ: http://www.laurasia.com.au/sudoku/ そこに「Downloads:」ってのがある筈です。一つはUnix用のSudokuのソースコード、もう一つはMicrosoft Windows用のソースとバイナリです。 ソースコードを読んで頑張って勉強してみてください。

関連するQ&A