diff --git a/Handler.java b/Handler.java index 06b74191a73a2de8b3599f929e289350a9be96c2..03d2ac8c41e404f2d0a4595498fc4960d077bc5f 100644 --- a/Handler.java +++ b/Handler.java @@ -1,4 +1,6 @@ import javafx.animation.*; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Node; import javafx.scene.control.Button; @@ -717,10 +719,29 @@ public class Handler { return true; } - public void solveBoard(Button solve, GridPane grid, int n) { - solve.setOnAction(actionEvent -> { - Solver solver = new Solver(n, grid); - solver.backtracking(1, 1); + public void solveBoard(GridPane grid) { + + Solver solver = new Solver(n, grid); + solver.backtracking(1, 1); + clear(grid); + } + + public void hint(Button hint, GridPane grid) { + + hint.setOnAction(actionEvent -> { + + boolean found = false; + + for(int i = 0; i < n && !found; i ++) { + for(int j = 0; j < n; j ++) { + if(cellValues[i][j] != Solver.solved[i][j]) { + getCell(grid, i, j).setValue(Solver.solved[i][j]); + cellValues[i][j] = Solver.solved[i][j]; + found = true; + break; + } + } + } }); } }