87 lines
2.9 KiB
Java
87 lines
2.9 KiB
Java
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<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().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<Case> 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());
|
|
}
|
|
}
|