]> git.itanic.dy.fi Git - sudoku/blob - solver.cpp
random.cpp: Return better random numbers
[sudoku] / solver.cpp
1 #include <iostream>
2
3 #include "sudoku.h"
4 #include "debug.h"
5
6 int main(int argc, char *argv[])
7 {
8         int row, i;
9         std::string line;
10         sudoku sudo;
11         std::vector<sudoku> results;
12
13         if (argc > 1) {
14                 if ((std::string)argv[1] == "-q")
15                         verbose = 0;
16         }
17
18         for (row = 0; row < 9; row++) {
19                 std::getline(std::cin, line, '\n');
20
21                 if(sudo.str_to_row(row, line)) {
22                         std::cout << "Error reading line " << row << std::endl;
23                         return 1;
24                 }
25         }
26
27         std::cout << "Done parsing.\n";
28
29 //      int solved;
30 //      sudo = sudo.solve(solved);
31         sudo.print();
32         std::cout << "Solving this sudoku.\n\n";
33
34         results = sudo.solve_all();
35
36         std::cout << "Found " << results.size() << " solutions\n";
37
38         for (i = 0; i < (int)results.size(); i++) {
39
40                 std::cout << "\nSolution " << i + 1 << ", iteration depth: "
41                           << results.at(i).recursion_depth << std::endl;
42                 results.at(i).print();
43         }
44         std::cout << "Had to guess " << sudo.guesses
45                   << " times while solving this sudoku\n";
46
47         return 0;
48 }