This commit is contained in:
@@ -11,7 +11,7 @@ public class Solver {
|
|||||||
/**
|
/**
|
||||||
* Résout le multidoku passé en paramètre si c'est possible.
|
* Résout le multidoku passé en paramètre si c'est possible.
|
||||||
* En testant toutes les possibilités avec un algorithme de backtracking.
|
* En testant toutes les possibilités avec un algorithme de backtracking.
|
||||||
* @param doku Multidouke, à résoudre
|
* @param doku Multidoku, à résoudre
|
||||||
* @return boolean, true s'il est résolut ou false s'il ne l'est pas.
|
* @return boolean, true s'il est résolut ou false s'il ne l'est pas.
|
||||||
*/
|
*/
|
||||||
public static boolean solve(MultiDoku doku) {
|
public static boolean solve(MultiDoku doku) {
|
||||||
|
|||||||
@@ -53,15 +53,33 @@ class SolverTest {
|
|||||||
|
|
||||||
assert(dokuResult.isValid());
|
assert(dokuResult.isValid());
|
||||||
|
|
||||||
boolean isSolvable = Solver.solve(dokuToTest);
|
Solver.solve(dokuToTest);
|
||||||
|
|
||||||
|
|
||||||
System.out.println("\n****************************\nDoku solve");
|
System.out.println("\n****************************\nDoku solved");
|
||||||
SudokuPrinter.printRectangleSudoku(dokuToTest.getSubGrid(0), 3, 3);
|
SudokuPrinter.printRectangleSudoku(dokuToTest.getSubGrid(0), 3, 3);
|
||||||
|
|
||||||
|
|
||||||
assert(dokuToTest.isValid());
|
assert(dokuToTest.isValid());
|
||||||
|
|
||||||
assert(dokuToTest.equals(dokuResult));
|
assert(dokuToTest.equals(dokuResult));
|
||||||
|
|
||||||
|
MultiDoku dokuToTest2 = SudokuFactory.createBasicEmptySquareSudoku(3);
|
||||||
|
Sudoku sudokuToTest2 = dokuToTest2.getSubGrid(0);
|
||||||
|
|
||||||
|
List<Integer> immutableCells2 = List.of(ns, ns, 0, ns, ns, 2, 8, ns, 1,
|
||||||
|
1, 3, ns, ns, 5, 6, 7, ns, ns,
|
||||||
|
ns, ns, ns, 8, ns, 7, ns, ns, 6,
|
||||||
|
0, ns, 1, ns, ns, ns, ns, ns, ns,
|
||||||
|
4, 8, 7, 5, 1, ns, 6, ns, ns,
|
||||||
|
6, ns, 3, 2, ns, ns, ns, 8, 0,
|
||||||
|
ns, ns, 6, ns, ns, 8, ns, 7, 5,
|
||||||
|
8, 0, ns, 7, ns, 5, 2, ns, 3,
|
||||||
|
5, ns, ns, ns, 3, 1, 0, ns, ns);
|
||||||
|
sudokuToTest2.setImmutableCellsSymbol(immutableCells2);
|
||||||
|
|
||||||
|
boolean isSolved = Solver.solve(dokuToTest2);
|
||||||
|
|
||||||
|
assert(!isSolved);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user