From e19a9c7b2727f6ca40f861e21495337f02494e5a Mon Sep 17 00:00:00 2001 From: "fl.du.pr Grens" Date: Tue, 21 Jan 2025 22:05:16 +0100 Subject: [PATCH] update validity dokus --- app/src/main/java/sudoku/Main.java | 17 +++++------------ app/src/main/java/sudoku/MultiDoku.java | 8 -------- app/src/main/java/sudoku/Sudoku.java | 9 ++------- app/src/main/java/sudoku/solver/Solver.java | 3 --- 4 files changed, 7 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/sudoku/Main.java b/app/src/main/java/sudoku/Main.java index d4a1e25..fe57633 100644 --- a/app/src/main/java/sudoku/Main.java +++ b/app/src/main/java/sudoku/Main.java @@ -27,21 +27,14 @@ public class Main { int blockHeight = 2; var multidoku = SudokuFactory.createBasicEmptyRectangleSudoku(blockWidth, blockHeight); var sudoku = multidoku.getSubGrid(0); - sudoku.setCellsSymbol(Arrays.asList(0,1,2,3, 2,3,0,1, 1,0,3,2, 3,2,1,0)); - SudokuPrinter.printRectangleSudoku(multidoku.getSubGrid(0), blockWidth , blockHeight); + if(!sudoku.setCellsSymbol(Arrays.asList(0,1,2,3, 2,3,1,1, 1,0,3,2, 3,2,1,1))){ + System.out.println("At least one of those values does not respect the constraints."); + } + //sudoku.setCellSymbol(8,3,0); - - - ArrayList constraints = new ArrayList<>(); - constraints.add(new LineConstraint()); - constraints.add(new ColumnConstraint()); - constraints.add(new BlockConstraint()); - - System.out.println(sudoku.isValid(constraints)); - - + SudokuPrinter.printRectangleSudoku(multidoku.getSubGrid(0), blockWidth , blockHeight); /* Solver solver = new Solver(); diff --git a/app/src/main/java/sudoku/MultiDoku.java b/app/src/main/java/sudoku/MultiDoku.java index 956f076..0e4a2c5 100644 --- a/app/src/main/java/sudoku/MultiDoku.java +++ b/app/src/main/java/sudoku/MultiDoku.java @@ -26,14 +26,6 @@ public class MultiDoku { return subGrids.get(i); } - public boolean isValid(List constraints){ - for (Sudoku sudoku : subGrids){ - if (!sudoku.isValid(constraints)) - return false; - } - return true; - } - public List getMutableCells(){ List mutableCells = new ArrayList<>(); for (Sudoku sudoku : subGrids){ diff --git a/app/src/main/java/sudoku/Sudoku.java b/app/src/main/java/sudoku/Sudoku.java index 6ea68d5..e0401e4 100644 --- a/app/src/main/java/sudoku/Sudoku.java +++ b/app/src/main/java/sudoku/Sudoku.java @@ -56,7 +56,8 @@ public class Sudoku { for (int i = 0; i < values.size(); i++) { int x = i%this.blocks.size(); int y = (i-x)/this.blocks.size(); - if (!this.setCellSymbol(x, y, values.get(i))) { + int value = values.get(i); + if (!this.setCellSymbol(x, y, value)) { return false; } } @@ -82,12 +83,6 @@ public class Sudoku { return this.blocks.size(); } - public boolean isValid(List constraints) { - // not implemented - // for eachcase check contraintes - return false; - } - public List getCells() { return this.cells; } diff --git a/app/src/main/java/sudoku/solver/Solver.java b/app/src/main/java/sudoku/solver/Solver.java index e338437..59da5eb 100644 --- a/app/src/main/java/sudoku/solver/Solver.java +++ b/app/src/main/java/sudoku/solver/Solver.java @@ -19,9 +19,6 @@ public class Solver { } public MultiDoku solve(MultiDoku doku, List constraints) throws Exception { - if (!doku.isValid(constraints)) { - throw new Exception("Invalid doku"); - } List allMutableCells = doku.getMutableCells(); List remainingCellsToCheck = new ArrayList<>(allMutableCells); Random rand = new Random();