From 91c645e34f6817d117b00ae8778db2251d9e2d79 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sat, 1 Feb 2025 23:00:36 +0100 Subject: [PATCH] fix steps --- app/src/main/java/gui/menu/SudokuView.java | 6 +++++- app/src/main/java/sudoku/solver/BacktrackingSolver.java | 2 +- app/src/main/java/sudoku/solver/HumanSolver.java | 2 +- app/src/main/java/sudoku/solver/MixedSolver.java | 4 ++-- app/src/main/java/sudoku/solver/RandomSolver.java | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/gui/menu/SudokuView.java b/app/src/main/java/gui/menu/SudokuView.java index 02e2eeb..c0b6263 100644 --- a/app/src/main/java/gui/menu/SudokuView.java +++ b/app/src/main/java/gui/menu/SudokuView.java @@ -1,5 +1,7 @@ package gui.menu; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.CancellationException; import gui.widget.SudokuRenderer; @@ -11,6 +13,7 @@ import sudoku.solver.HintHelper; import sudoku.solver.HumanSolver; import sudoku.solver.MixedSolver; import sudoku.solver.Solver; +import sudoku.solver.SolverStep; import sudoku.solver.HintHelper.Hint; import sudoku.structure.MultiDoku; @@ -90,8 +93,9 @@ public class SudokuView extends BaseView { private void startSolve(Solver solver) { resolveThread = new Thread(() -> { + List steps = new ArrayList<>(); try { - unresolved = !solver.solve(this.doku); + unresolved = !solver.solve(this.doku, steps); } catch (CancellationException e) { System.out.println("The user is bored !"); } diff --git a/app/src/main/java/sudoku/solver/BacktrackingSolver.java b/app/src/main/java/sudoku/solver/BacktrackingSolver.java index f940937..3b4a04e 100644 --- a/app/src/main/java/sudoku/solver/BacktrackingSolver.java +++ b/app/src/main/java/sudoku/solver/BacktrackingSolver.java @@ -36,7 +36,7 @@ public class BacktrackingSolver implements Solver { for (int symbol : possibleSymbols) { cellToFill.setSymbolIndex(symbol); addStep(cellToFill, steps); - if (this.solve(doku)) { + if (this.solve(doku, steps)) { return true; } else { cellToFill.setSymbolIndex(Cell.NOSYMBOL); diff --git a/app/src/main/java/sudoku/solver/HumanSolver.java b/app/src/main/java/sudoku/solver/HumanSolver.java index adb1d37..c4f9196 100644 --- a/app/src/main/java/sudoku/solver/HumanSolver.java +++ b/app/src/main/java/sudoku/solver/HumanSolver.java @@ -49,7 +49,7 @@ public class HumanSolver implements Solver { cellToFill.setSymbolIndex(possibleSymbols.getFirst()); addStep(cellToFill, steps); - return this.solve(doku); + return this.solve(doku, steps); } return doku.isSolved(); diff --git a/app/src/main/java/sudoku/solver/MixedSolver.java b/app/src/main/java/sudoku/solver/MixedSolver.java index 061d2dd..db0d125 100644 --- a/app/src/main/java/sudoku/solver/MixedSolver.java +++ b/app/src/main/java/sudoku/solver/MixedSolver.java @@ -50,7 +50,7 @@ public class MixedSolver implements Solver { if (possibleSymbols.size() == 1) { cellToFill.setSymbolIndex(possibleSymbols.getFirst()); addStep(cellToFill, steps); - if (this.solve(doku)) { + if (this.solve(doku, steps)) { return true; } } @@ -61,7 +61,7 @@ public class MixedSolver implements Solver { cellToFill.setSymbolIndex(nextSymbol); addStep(cellToFill, steps); - if (this.solve(doku)) { + if (this.solve(doku, steps)) { return true; } cellToFill.setSymbolIndex(Cell.NOSYMBOL); diff --git a/app/src/main/java/sudoku/solver/RandomSolver.java b/app/src/main/java/sudoku/solver/RandomSolver.java index 63a9cb1..e1574d3 100644 --- a/app/src/main/java/sudoku/solver/RandomSolver.java +++ b/app/src/main/java/sudoku/solver/RandomSolver.java @@ -52,7 +52,7 @@ public class RandomSolver implements Solver { cellToFill.setSymbolIndex(nextSymbol); addStep(cellToFill, steps); - if (this.solve(doku)) { + if (this.solve(doku, steps)) { return true; } cellToFill.setSymbolIndex(Cell.NOSYMBOL);