diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp index 23009a7..4af1257 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,8 +5,42 @@ using namespace std; int main(int argc, char** argv) { cout << "Sudoku Solver v1.1" << endl << endl; + vector<int> sudoku_grid; + unsigned int curr_location = 0; + bool solved = false; + bool forward = true; + SudokuSolver solver; - solver.printGrid(); + solver.initGrid(sudoku_grid); + solver.printGrid(sudoku_grid); + + while(!solved) { + if(curr_location == GRIDSIZE*GRIDSIZE) { + solved = true; + } else if(solver.emptyLocation(curr_location)) { + ++sudoku_grid[curr_location]; + if(sudoku_grid[curr_location] > GRIDSIZE) { + sudoku_grid[curr_location] = 0; + forward = false; + --curr_location; + } else if(solver.isValid(curr_location, sudoku_grid)) { + ++curr_location; + forward = true; + } else { + forward = true; + } + } else { + if(forward) { + ++curr_location; + } else { + --curr_location; + } + } + } + + cout << endl; + solver.printGrid(sudoku_grid); + return 0; } |