summaryrefslogtreecommitdiff
path: root/src/sudoku.cc
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2013-04-18 21:53:29 +0000
committerStijn Buys <ingar@osirion.org>2013-04-18 21:53:29 +0000
commit1bdd9ddbfdd021284201bd0a1f5da41be3dc9578 (patch)
tree00a8769924e32d6afbd9f67ab7d939ef36f55b15 /src/sudoku.cc
parent96205403612c73f4c4a3247d7d96560d3d8f92e8 (diff)
Added ui menus, added solve() method.
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