MiniSatというSATソルバを利用したパズルソルバです。 MiniSatをインストールし、main.hsをコンパイルしてください。
$ ghc -O main.hs
現在、数独とイラストロジックに対応しています。
./main <PuzzleType> <FilePath> で実行します。
PuzzleTypeは、sudoku(数独)、illustlogic(イラストロジック)です。
入力するファイルは、 ・はじめの行に"ブロックの行サイズ ブロックの列サイズ" ・二行目以降に問題 としてください。
ブロックが 1 2 3 4 5 6 なら行サイズは2、列サイズは3です。
例)
3 3
2 5 0 0 3 0 0 4 6
0 0 9 0 2 0 0 0 8
4 3 0 7 6 1 0 0 9
0 0 0 6 0 0 0 0 0
1 0 0 9 8 4 0 0 5
0 0 0 0 0 2 0 0 0
3 0 0 1 4 8 0 7 2
8 0 0 0 7 0 9 0 0
7 4 0 0 9 0 0 5 3
入力するファイルは、 ・はじめの行に"行サイズ 列サイズ" ・二行目以降は行の制約条件の数字、その後に列の制約条件の数字 としてください。
例)
15 15
0
1 2
2 1
1 2
3 1 3
8 1
10 1
12
10 1
12
12
12
10
3 3
0
0
0
7
9
10
10
9
12
1 8
1 1 9
1 2 8
1 1 8
1 1 4
7
0