summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp36
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;
}