diff options
Diffstat (limited to 'src/solverwindow.cc')
-rw-r--r-- | src/solverwindow.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/solverwindow.cc b/src/solverwindow.cc index 33ca7c2..e7f4633 100644 --- a/src/solverwindow.cc +++ b/src/solverwindow.cc @@ -181,14 +181,14 @@ void SolverWindow::step() solverwindow_sudokuwidget->get_values(sudoku); Sudoku solution(sudoku); - int solved = solution.solve(); + int solved = solution.solve_rules(); if (solved == 0) { qDebug() << "no solveable cells left!"; return; } // compare sudoku and solution values - int index_start = (int) random() % 81; // TODO this should be a random number from 0 to 80 + int index_start = (int) random() % 81; int index_current = index_start; do { int column = index_current % 9; @@ -209,11 +209,23 @@ void SolverWindow::solve() { Sudoku sudoku; solverwindow_sudokuwidget->get_values(sudoku); - int solved = sudoku.solve(); + int solved = sudoku.solve_rules(); + sudoku.validate(); solverwindow_sudokuwidget->set_values(sudoku); qDebug() << solved << " cells solved"; } +void SolverWindow::search() +{ + Sudoku sudoku; + solverwindow_sudokuwidget->get_values(sudoku); + int iterations = sudoku.solve_search(); + solverwindow_sudokuwidget->set_values(sudoku); + if (iterations > 0) { + qDebug() << "solved in " << iterations << " iterations"; + } +} + void SolverWindow::step_constraints() { Sudoku sudoku; |