refactor: fix warnings

This commit is contained in:
2025-02-08 17:39:20 +01:00
parent f002667e54
commit b836670cda
7 changed files with 20 additions and 31 deletions

View File

@@ -65,18 +65,17 @@ public class Grille {
if (symbole != null && !symbolesPossibles.contains(symbole)) {
throw new IllegalArgumentException("Symbole non autorisé : " + symbole);
}
// Sauvegarder l'ancien symbole
Symbole ancienSymbole = cases[ligne][colonne].getSymbole();
// Affecter le nouveau symbole
cases[ligne][colonne].setSymbole(symbole);
Case currentCase = cases[ligne][colonne];
Symbole ancienSymbole = currentCase.getSymbole();
currentCase.setSymbole(symbole);
// Vérifier les contraintes
if (!sudoku.verifierToutesContraintes()) {
// Revenir sur le changement
cases[ligne][colonne].setSymbole(ancienSymbole);
throw new IllegalArgumentException("SET CASE: Les contraintes ne sont pas respectées pour la case ("
+ ligne + ", " + colonne + ")");
// Verify constraints including shared cases
if (!sudoku.verifierToutesContraintes() ||
(multidoku != null && !multidoku.verifierContraintesPartagees())) {
currentCase.setSymbole(ancienSymbole);
throw new IllegalArgumentException(
"Les contraintes ne sont pas respectées pour la case (" + ligne + ", " + colonne + ")");
}
} catch (Exception e) {
Console.errorln(e.getMessage());

View File

@@ -3,12 +3,10 @@ package sudoku;
import java.util.*;
public class Multidoku {
private List<Sudoku> sudokus;
private List<SudokuPlacement> placements = new ArrayList<>();
private List<ContrainteCasePartagee> contraintesPartagees;
public Multidoku() {
this.sudokus = new ArrayList<>();
this.contraintesPartagees = new ArrayList<>();
}
@@ -219,12 +217,10 @@ public class Multidoku {
public class ContrainteCasePartagee implements Contrainte {
private Map<Case, Case> casesLiees; // Map associant chaque case à sa correspondante
private Set<Sudoku> sudokusLies;
private Multidoku multidoku;
public ContrainteCasePartagee(List<Case> cases, Multidoku multidoku) {
this.casesLiees = new HashMap<>();
this.sudokusLies = new HashSet<>();
this.multidoku = multidoku;
// Les cases sont données dans l'ordre : d'abord celles du premier sudoku,
// puis celles du second dans le même ordre

View File

@@ -4,12 +4,6 @@ import java.util.List;
public class ResolveurBacktraceSimple implements Resolveur {
private final Sudoku sudoku;
public ResolveurBacktraceSimple(Sudoku sudoku) {
this.sudoku = sudoku;
}
@Override
public boolean resoudre(Sudoku s, boolean afficherEtape) {
EtatResolution etat = new EtatResolution(0, 0);

View File

@@ -136,7 +136,7 @@ public class Sudoku {
}
private void resolutionSudoku(Sudoku sudoku, boolean afficherEtape) {
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
resolveur.resoudre(sudoku, afficherEtape);
System.out.println("Sudoku résolu :");
System.out.println(sudoku.getGrille().toString());

View File

@@ -59,7 +59,7 @@ public class AppTest {
System.out.println(sudoku.getGrille().toString());
Resolveur resolveur = new ResolveurBacktraceSimple(sudoku);
Resolveur resolveur = new ResolveurBacktraceSimple();
resolveur.resoudre(sudoku, false);
System.out.println("Sudoku résolu :");
System.out.println(sudoku.getGrille().toString());

View File

@@ -58,7 +58,7 @@ public class TestBlocParticuliers {
System.out.println("Symboles possibles :");
sudoku.getGrille().printSymbolesPossibles();
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
resolveur.resoudre(sudoku, true);
System.out.println("Sudoku résolu :");

View File

@@ -48,7 +48,7 @@ public class TestResolveurBacktraceSimpleSudoku9 {
System.out.println("Symboles possibles :");
sudoku.getGrille().printSymbolesPossibles();
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
resolveur.resoudre(sudoku, false);
System.out.println("Sudoku resolu :");
System.out.println(sudoku.getGrille().toString());