6 eprintf
"Sudoku: solve a Sudoku puzzle@.";
7 eprintf
"Usage: %s <comma separated sequence of 81 non-zero digits>@." Sys.argv
.(0);
11 if Array.length
Sys.argv
<> 2 then usage ();
15 if String.length
input <> 161 then usage ();
17 if input.[i
+i
+1] <> '
,'
then usage ();
19 let a = Array.make
81 0 in
21 match input.[i
+i
] with
22 | '
0'
..'
9'
as c
-> a.(i
) <- Char.code c
- Char.code '
0'
27 let print_grid fmt
a =
31 then fprintf fmt
"%d@\n" a.(i
)
32 else fprintf fmt
"%d " a.(i
)
37 let sudoku = Sudoku_reloaded__TheClassicalSudokuGrid.classical_sudoku
() in
38 printf
"Problem: %a@." print_grid input_grid;
39 let a = Sudoku_reloaded__Solver.solve
sudoku input_grid
41 printf
"Solution: %a@." print_grid a
46 2,0,9,0,0,0,0,1,0,0,0,0,0,6,0,0,0,0,0,5,3,8,0,2,7,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,7,5,0,0,3,0,4,1,2,0,8,9,0,0,0,0,4,0,9,0,0,2,0,8,0,0,0,0,1,0,0,5,0,0,0,0,0,0,0,7,6
74 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,8,5,0,0,1,0,2,0,0,0,0,0,0,0,5,0,7,0,0,0,0,0,4,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,5,0,0,0,0,0,0,7,3,0,0,2,0,1,0,0,0,0,0,0,0,0,4,0,0,0,9