refactor: update ContrainteBloc to handle rectangle bloc, update tests, and improve code comments
This commit is contained in:
@@ -55,7 +55,8 @@ public class AppTest {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(
|
||||
new ContrainteBloc(sudoku.getGrille().getTaille() / 4, sudoku.getGrille().getTaille() / 4));
|
||||
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
|
||||
|
||||
@@ -7,63 +7,64 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TestBlocParticuliers {
|
||||
|
||||
@Test
|
||||
public void blocParticuliers() {
|
||||
System.out.println("TEST BLOC PARTICULIERS : ");
|
||||
System.out.println(new App().getGreeting());
|
||||
// Create a new Sudoku
|
||||
Sudoku sudoku = new Sudoku(4);
|
||||
@Test
|
||||
public void blocParticuliers() {
|
||||
System.out.println("TEST BLOC PARTICULIERS : ");
|
||||
System.out.println(new App().getGreeting());
|
||||
// Create a new Sudoku
|
||||
Sudoku sudoku = new Sudoku(4);
|
||||
|
||||
sudoku.getGrille().setSymbolesPossibles(new ArrayList<>(Arrays.asList(
|
||||
Symbole.of(1),
|
||||
Symbole.of(2),
|
||||
Symbole.of(3),
|
||||
Symbole.of(4))));
|
||||
sudoku.getGrille().setSymbolesPossibles(new ArrayList<>(Arrays.asList(
|
||||
Symbole.of(1),
|
||||
Symbole.of(2),
|
||||
Symbole.of(3),
|
||||
Symbole.of(4))));
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 2,
|
||||
sudoku.getGrille().getTaille() / 2));
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(3, 1, Symbole.of(2));
|
||||
sudoku.getGrille().setCase(2, 2, Symbole.of(3));
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(3, 1, Symbole.of(2));
|
||||
sudoku.getGrille().setCase(2, 2, Symbole.of(3));
|
||||
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 0, 0 },
|
||||
new int[] { 3, 3 },
|
||||
new int[] { 0, 1 },
|
||||
new int[] { 2, 3 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 0, 2 },
|
||||
new int[] { 1, 3 },
|
||||
new int[] { 1, 2 },
|
||||
new int[] { 3, 1 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 1, 1 },
|
||||
new int[] { 1, 0 },
|
||||
new int[] { 0, 3 },
|
||||
new int[] { 3, 0 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 2, 0 },
|
||||
new int[] { 2, 1 },
|
||||
new int[] { 2, 2 },
|
||||
new int[] { 3, 2 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 0, 0 },
|
||||
new int[] { 3, 3 },
|
||||
new int[] { 0, 1 },
|
||||
new int[] { 2, 3 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 0, 2 },
|
||||
new int[] { 1, 3 },
|
||||
new int[] { 1, 2 },
|
||||
new int[] { 3, 1 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 1, 1 },
|
||||
new int[] { 1, 0 },
|
||||
new int[] { 0, 3 },
|
||||
new int[] { 3, 0 }));
|
||||
sudoku.getGrille().creerBlocPersonnalise(Arrays.asList(
|
||||
new int[] { 2, 0 },
|
||||
new int[] { 2, 1 },
|
||||
new int[] { 2, 2 },
|
||||
new int[] { 3, 2 }));
|
||||
|
||||
System.out.println("Sudoku :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
System.out.println("Sudoku :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
|
||||
System.out.println("Blocs :");
|
||||
sudoku.getGrille().printBlocs();
|
||||
System.out.println("Blocs :");
|
||||
sudoku.getGrille().printBlocs();
|
||||
|
||||
System.out.println("Symboles possibles :");
|
||||
sudoku.getGrille().printSymbolesPossibles();
|
||||
System.out.println("Symboles possibles :");
|
||||
sudoku.getGrille().printSymbolesPossibles();
|
||||
|
||||
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||
resolveur.resoudre(sudoku, true);
|
||||
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||
resolveur.resoudre(sudoku, true);
|
||||
|
||||
System.out.println("Sudoku résolu :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
System.out.println("Sudoku résolu :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
|
||||
System.out.println("FIN TEST BLOC PARTICULIERS");
|
||||
}
|
||||
System.out.println("FIN TEST BLOC PARTICULIERS");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@ public class TestBlocRectangle {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(
|
||||
new ContrainteBloc(sudoku.getGrille().getTaille() / 5, sudoku.getGrille().getTaille() / 3));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
@@ -35,7 +36,7 @@ public class TestBlocRectangle {
|
||||
sudoku.getGrille().setCase(3, 0, Symbole.of(4));
|
||||
|
||||
sudoku.getGrille().creerBlocRectangulaire(3, 5);
|
||||
|
||||
|
||||
System.out.println("Sudoku :");
|
||||
System.out.println(sudoku.getGrille().toString());
|
||||
|
||||
|
||||
@@ -88,7 +88,8 @@ public class TestCreationGrilleRectangulaireSansSolution {
|
||||
|
||||
sudoku.getGrille().creerBlocRectangulaire(3, 4);
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(
|
||||
new ContrainteBloc(sudoku.getGrille().getTaille() / 4, sudoku.getGrille().getTaille() / 3));
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ public class TestDoublonBloc {
|
||||
Symbole.of(9))));
|
||||
|
||||
// Add constraints
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
|
||||
@@ -35,7 +35,7 @@ public class TestMultidokuBloc {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
@@ -73,11 +73,11 @@ public class TestMultidokuBloc {
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
} else {
|
||||
System.out.println("Multidoku non résolu");
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class TestMultidokuCase {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
@@ -55,11 +55,11 @@ public class TestMultidokuCase {
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu !");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
} else {
|
||||
System.out.println("Échec de la résolution du multidoku.");
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class TestMultidokuColonne {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
@@ -68,11 +68,11 @@ public class TestMultidokuColonne {
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
} else {
|
||||
System.out.println("Multidoku non résolu");
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class TestMultidokuLigne {
|
||||
sudoku.getGrille().setSymbolesPossibles(symboles);
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
sudoku.getGrille().creerBlocCarre();
|
||||
}
|
||||
|
||||
@@ -68,11 +68,11 @@ public class TestMultidokuLigne {
|
||||
System.out.println(s2.getGrille().toString());
|
||||
|
||||
System.out.println("\nAffichage Multidoku combiné :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
|
||||
if (multidoku.resoudreMultidoku(false)) {
|
||||
System.out.println("Multidoku résolu :");
|
||||
System.out.println(multidoku.toStringCombined());
|
||||
System.out.println(multidoku.toString());
|
||||
} else {
|
||||
System.out.println("Multidoku non résolu");
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public class TestResolveurBacktraceSimpleSudoku16 {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 4, sudoku.getGrille().getTaille() / 4));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
// sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
// sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
// sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
// sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 5, sudoku.getGrille().getTaille() / 5));
|
||||
|
||||
// sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
// sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
|
||||
@@ -25,7 +25,7 @@ public class TestResolveurBacktraceSimpleSudoku9 {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of(1));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of(2));
|
||||
|
||||
@@ -28,7 +28,8 @@ public class TestSudokuEmojis {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(
|
||||
new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of("😎"));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of("😂"));
|
||||
|
||||
@@ -28,7 +28,8 @@ public class TestSudokuLettres {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(
|
||||
new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of("L"));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of("E"));
|
||||
|
||||
@@ -29,7 +29,8 @@ public class TestSudokusString {
|
||||
|
||||
sudoku.ajouterContrainte(new ContrainteLigne());
|
||||
sudoku.ajouterContrainte(new ContrainteColonne());
|
||||
sudoku.ajouterContrainte(new ContrainteBloc());
|
||||
sudoku.ajouterContrainte(
|
||||
new ContrainteBloc(sudoku.getGrille().getTaille() / 3, sudoku.getGrille().getTaille() / 3));
|
||||
|
||||
sudoku.getGrille().setCase(0, 0, Symbole.of("Sudoku"));
|
||||
sudoku.getGrille().setCase(6, 1, Symbole.of("String"));
|
||||
|
||||
Reference in New Issue
Block a user