9x9マスの数独(sudoku)解法プログラム

   2012/04/03 後 保範 (Ushiro Yasunori、早稲田大学)

1. プログラムの概要

 (1) 入出力と出力制御
    入力ファイル名: input.txt
    出力ファイル名: output.txt
    出力制御(bedug=x): xは0,1,2,3が可能で1,2,3はデバッグ用。
              sudoku.exeはdebug=0で入力と結果の表示。
   (2) 主な関数の機能
    step1() : 一意的に値が決まる値の設定
    step21(): 2格子の組み合わせでテストし設定
    step22(): 2値x2格子の組み合わせでテストし設定
    Wreset : 設定可能な数値の数とリストを設定
    Areset : 見つかった値をAに反映
 (3) 主な配列の役割
    A[9][9]  : 数独行列、値が0は未知、1〜9は既知
    NO[9][9]  : 設定可能な数値の数
    W[9][9][9] : 設定可能な数値のリスト

2. プログラム

 利用する場合はプログラム右クリックで各自のPCに保存してください。
 (1) ソースプログラム
    Cソースプログラム: sudoku.c
 (2) 実行プログラム(windows)
    windows実行プログラム: sudoku.exe

3. 入力データ例

 2012年3月31日の朝日新聞(beパズル)他から借用。
 入力ファイル名はinput.txtで、行毎に9個の数値を9行記載。
 1〜9が入力値で0は未定を示す、数値の間は1個以上のスペース。
 (1) step1で解ける例
    入力データ: input.txt, input2.txt, input3.txt
 (2) step2が必要な例
    入力データ: input4.txt, input5.txt
 

4. 結果の出力例

 (1) sudoku.exeでの実行結果
    input.txtの結果: output.txt
    input3.txtの結果: output3.txt
 (2) sudoku.cでdebug=1に変更した実行結果
    input2.txtの結果: output2.txt
    input4.txtの結果: output4.txt
    input5.txtの結果: output5.txt