feat: add error handling for unsolvable Sudoku and rename test class for clarity

This commit is contained in:
2025-02-08 18:44:59 +01:00
parent 690be279bd
commit 0f72113d67
2 changed files with 15 additions and 3 deletions

View File

@@ -2,12 +2,18 @@ package sudoku;
import java.util.List;
import sudoku.core.Console;
public class ResolveurBacktraceSimple implements Resolveur {
@Override
public boolean resoudre(Sudoku s, boolean afficherEtape) {
EtatResolution etat = new EtatResolution(0, 0);
return resoudre(s, afficherEtape, etat);
boolean solved = resoudre(s, afficherEtape, etat);
if (!solved) {
Console.errorln("Ce Sudoku n'a pas de solution");
}
return solved;
}
private boolean resoudre(Sudoku s, boolean afficherEtape, EtatResolution etat) {

View File

@@ -5,9 +5,9 @@ import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
public class TestCreationGrille {
public class TestCreationGrilleRectangulaireSansSolution {
@Test
public void testLigne() {
public void testCreationGrilleSansSolution() {
// CREATION D'UN SUDOKU SIMPLE 12*12
Sudoku sudoku = new Sudoku(12);
sudoku.getGrille().setSymbolesPossibles(new ArrayList<>(Arrays.asList(
@@ -98,6 +98,12 @@ public class TestCreationGrille {
sudoku.getGrille().printBlocs();
System.out.println("Symboles possibles :");
sudoku.getGrille().printSymbolesPossibles();
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
boolean solved = resolveur.resoudre(sudoku, false);
System.out.println("Sudoku " + (solved ? "résolu" : "non résolu") + " :");
System.out.println(sudoku.getGrille().toString());
System.out.println("FIN TEST LIGNE");
}
}