feat: better shared contraints and backtrace working !

This commit is contained in:
2025-02-08 17:34:46 +01:00
parent bf9bfc8323
commit f002667e54
4 changed files with 330 additions and 169 deletions

View File

@@ -14,6 +14,9 @@ public class TestMultidokuBloc {
Sudoku s1 = new Sudoku(9);
Sudoku s2 = new Sudoku(9);
s1.setNom("Sudoku 1");
s2.setNom("Sudoku 2");
// Placer sudoku1 en haut à gauche (offset (0,0))
multidoku.ajouterSudoku(s1, 0, 0);
@@ -21,6 +24,25 @@ public class TestMultidokuBloc {
// grille globale
multidoku.ajouterSudoku(s2, 6, 6);
ArrayList<Symbole> symboles = new ArrayList<>();
for (int i = 10; i <= 19; i++) {
symboles.add(Symbole.of(i));
}
s1.getGrille().setSymbolesPossibles(symboles);
List<Sudoku> sudokus = Arrays.asList(s1, s2);
for (Sudoku sudoku : sudokus) {
sudoku.getGrille().setSymbolesPossibles(symboles);
sudoku.ajouterContrainte(new ContrainteLigne());
sudoku.ajouterContrainte(new ContrainteColonne());
sudoku.ajouterContrainte(new ContrainteBloc());
sudoku.getGrille().creerBlocCarre();
}
for (int i = 0; i < s1.getGrille().getTaille(); i++) {
s1.getGrille().setCase(i, i, symboles.get(i));
}
// Créer un lien entre la case (6,6) de s1 et (0,0) de s2
List<Case> casesPartagees = Arrays.asList(
s1.getGrille().getCase(6, 6),
@@ -44,28 +66,6 @@ public class TestMultidokuBloc {
s2.getGrille().getCase(2, 2));
multidoku.ajouterCasesPartagees(casesPartagees);
multidoku.ajouterContraintePartagee(new ContrainteCasePartagee(casesPartagees));
ArrayList<Symbole> symboles = new ArrayList<>();
for (int i = 10; i <= 19; i++) {
symboles.add(Symbole.of(i));
}
s1.getGrille().setSymbolesPossibles(symboles);
List<Sudoku> sudokus = Arrays.asList(s1, s2);
for (Sudoku sudoku : sudokus) {
sudoku.getGrille().setSymbolesPossibles(symboles);
sudoku.ajouterContrainte(new ContrainteLigne());
sudoku.ajouterContrainte(new ContrainteColonne());
sudoku.ajouterContrainte(new ContrainteBloc());
sudoku.getGrille().creerBlocCarre();
}
for (int i = 0; i < s1.getGrille().getTaille(); i++) {
s1.getGrille().setCase(i, i, symboles.get(i));
}
System.out.println("Sudoku 1 :");
System.out.println(s1.getGrille().toString());
@@ -88,4 +88,4 @@ public class TestMultidokuBloc {
System.out.println("Sudoku 2 résolu :");
System.out.println(s2.getGrille().toString());
}
}
}