FLYING

/* TODO: 気の利いた説明を書く */

パソコムに数独を解かせるプログラムを書き直してみた

ソースを見直したらなんか無駄な処理しまくってるっぽかったので書き直した。この暇人め。バックトラックも実装したかったんだけど、step2まで実装したところで力尽きたので今日はここまで。実は機能もソースの行数もあまり変わっていない罠。解法アルゴリズム前のときと同じ。難しい問題が解けないのも前と同じ。

じゃあ変更点は何かって言うと、それまでは数字を確定してから別のところで関係するマスの候補を最適化していたのを、数字を確定するとき一緒に最適化するように書き直した。これで、ごちゃごちゃしていた問題を解く部分のコードがスッキリした。それと、候補リストを直接弄る下請け関数を作ることで、オブジェクトをメソッドで変更するイメージに近づけた。コード量こそ変わらないものの、だいぶ理解しやすくなった気がする。個人的には。

つー訳でソース・Win32用バイナリ・問題ファイルをzipでまとめてうp。

あー、例によってプログラムをダブルクリックで起動すると、一瞬でウィンドウが消えてしまうので、面倒でもコマンドプロンプトから起動してやってください。また、付属のdata.datをメモ帳で開くと、問題を変更できますです。問題を解くまでに表示されるドットの数は、結果が確定するまでの試行回数を表しているという噂です。