summaryrefslogtreecommitdiff
path: root/src/sudoku.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/sudoku.cc')
-rw-r--r--src/sudoku.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/sudoku.cc b/src/sudoku.cc
index 44f8365..07b9056 100644
--- a/src/sudoku.cc
+++ b/src/sudoku.cc
@@ -1,6 +1,4 @@
-// #include <QtGui>
-
#include "sudoku.h"
Sudoku::Sudoku()
@@ -35,12 +33,6 @@ int Sudoku::compare_and_assign(const Sudoku & other)
}
return d;
}
-/*
-void Sudoku::set_value(int row, int column, int cell_value)
-{
- sudoku_cell[row][column].set_value(cell_value);
-}
-*/
// reset the solution space and calculate possible values for all cells
void Sudoku::reset()
@@ -309,4 +301,17 @@ int Sudoku::solve_constraints(int pos_row, int pos_column)
} else {
return 0;
}
+}
+
+int Sudoku::solve()
+{
+ int solved_total = 0;
+ int solved_step = 0;
+
+ do {
+ solved_step = solve_coverage() + solve_constraints();
+ solved_total += solved_step;
+ } while (solved_step > 0);
+
+ return (solved_total);
} \ No newline at end of file