diff options
author | Stijn Buys <ingar@osirion.org> | 2013-04-18 21:53:29 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2013-04-18 21:53:29 +0000 |
commit | 1bdd9ddbfdd021284201bd0a1f5da41be3dc9578 (patch) | |
tree | 00a8769924e32d6afbd9f67ab7d939ef36f55b15 /src/sudoku.cc | |
parent | 96205403612c73f4c4a3247d7d96560d3d8f92e8 (diff) |
Added ui menus, added solve() method.
Diffstat (limited to 'src/sudoku.cc')
-rw-r--r-- | src/sudoku.cc | 21 |
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 |