package sudoku; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.Test; public class TestMultidokuLigne { @Test public void testMultidokuLigne() { Multidoku multidoku = new Multidoku(); 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); multidoku.ajouterSudoku(s2, 8, 1); ArrayList symboles = new ArrayList<>(); for (int i = 10; i <= 19; i++) { symboles.add(Symbole.of(i)); } s1.getGrille().setSymbolesPossibles(symboles); List 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().getTaille() / 3, sudoku.getGrille().getTaille() / 3)); sudoku.getGrille().creerBlocCarre(); } for (int i = 0; i < s1.getGrille().getTaille(); i++) { s1.getGrille().setCase(i, i, symboles.get(i)); } List casesPartagees = Arrays.asList( s1.getGrille().getCase(8, 1), s1.getGrille().getCase(8, 2), s1.getGrille().getCase(8, 3), s1.getGrille().getCase(8, 4), s1.getGrille().getCase(8, 5), s1.getGrille().getCase(8, 6), s1.getGrille().getCase(8, 7), s1.getGrille().getCase(8, 8), s2.getGrille().getCase(0, 0), s2.getGrille().getCase(0, 1), s2.getGrille().getCase(0, 2), s2.getGrille().getCase(0, 3), s2.getGrille().getCase(0, 4), s2.getGrille().getCase(0, 5), s2.getGrille().getCase(0, 6), s2.getGrille().getCase(0, 7)); multidoku.ajouterCasesPartagees(casesPartagees); 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é :"); System.out.println(multidoku.toString()); if (multidoku.resoudreMultidoku(false)) { System.out.println("Multidoku résolu :"); System.out.println(multidoku.toString()); } else { System.out.println("Multidoku non résolu"); } System.out.println("Sudoku 1 résolu :"); System.out.println(s1.getGrille().toString()); System.out.println("Sudoku 2 résolu :"); System.out.println(s2.getGrille().toString()); } }