feat: multidoku rendu seems to work

This commit is contained in:
2025-02-07 10:19:42 +01:00
parent 7e068d0910
commit 1c1da09e1f
4 changed files with 228 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
package sudoku;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.jupiter.api.Test;
public class TestMultidoku {
@Test
public void testMultidoku() {
Multidoku multidoku = new Multidoku();
Sudoku s1 = new Sudoku(9);
Sudoku s2 = new Sudoku(9);
// Placer sudoku1 en haut à gauche (offset (0,0))
multidoku.ajouterSudoku(s1, 0, 0);
// Placer sudoku2 de façon à ce que sa case (0,0) se retrouve en (8,8) de la
// grille globale
multidoku.ajouterSudoku(s2, 8, 8);
// Créer un lien entre la case (8,8) de s1 et (0,0) de s2
List<Case> casesPartagees = Arrays.asList(
s1.getGrille().getCase(8, 8),
s2.getGrille().getCase(0, 0));
multidoku.ajouterCasesPartagees(casesPartagees);
ArrayList<Symbole> symboles = new ArrayList<>();
for (int i = 1; i <= 9; 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();
}
System.out.println("Sudoku 1 :");
System.out.println(s1.getGrille().toString());
System.out.println("Sudoku 2 :");
System.out.println(s2.getGrille().toString());
System.out.println("\nAffichage Multidoku combiné :");
// TODO: Afficher le Multidoku combiné
System.out.println(multidoku.toStringCombined());
}
}