refactor: fix warnings
This commit is contained in:
@@ -65,18 +65,17 @@ public class Grille {
|
|||||||
if (symbole != null && !symbolesPossibles.contains(symbole)) {
|
if (symbole != null && !symbolesPossibles.contains(symbole)) {
|
||||||
throw new IllegalArgumentException("Symbole non autorisé : " + symbole);
|
throw new IllegalArgumentException("Symbole non autorisé : " + symbole);
|
||||||
}
|
}
|
||||||
// Sauvegarder l'ancien symbole
|
|
||||||
Symbole ancienSymbole = cases[ligne][colonne].getSymbole();
|
|
||||||
|
|
||||||
// Affecter le nouveau symbole
|
Case currentCase = cases[ligne][colonne];
|
||||||
cases[ligne][colonne].setSymbole(symbole);
|
Symbole ancienSymbole = currentCase.getSymbole();
|
||||||
|
currentCase.setSymbole(symbole);
|
||||||
|
|
||||||
// Vérifier les contraintes
|
// Verify constraints including shared cases
|
||||||
if (!sudoku.verifierToutesContraintes()) {
|
if (!sudoku.verifierToutesContraintes() ||
|
||||||
// Revenir sur le changement
|
(multidoku != null && !multidoku.verifierContraintesPartagees())) {
|
||||||
cases[ligne][colonne].setSymbole(ancienSymbole);
|
currentCase.setSymbole(ancienSymbole);
|
||||||
throw new IllegalArgumentException("SET CASE: Les contraintes ne sont pas respectées pour la case ("
|
throw new IllegalArgumentException(
|
||||||
+ ligne + ", " + colonne + ")");
|
"Les contraintes ne sont pas respectées pour la case (" + ligne + ", " + colonne + ")");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Console.errorln(e.getMessage());
|
Console.errorln(e.getMessage());
|
||||||
@@ -84,14 +83,14 @@ public class Grille {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// public void setCaseAvecPropagation(int ligne, int colonne, Symbole symbole) {
|
// public void setCaseAvecPropagation(int ligne, int colonne, Symbole symbole) {
|
||||||
// // Affecte la valeur dans la grille courante
|
// // Affecte la valeur dans la grille courante
|
||||||
// setCase(ligne, colonne, symbole);
|
// setCase(ligne, colonne, symbole);
|
||||||
|
|
||||||
// // Si cette case est partagée et qu'il y a un multidoku, on propage
|
// // Si cette case est partagée et qu'il y a un multidoku, on propage
|
||||||
// // immédiatement la valeur
|
// // immédiatement la valeur
|
||||||
// if (multidoku != null && multidoku.isSharedCase(getCase(ligne, colonne))) {
|
// if (multidoku != null && multidoku.isSharedCase(getCase(ligne, colonne))) {
|
||||||
// multidoku.propagateSharedCase(getCase(ligne, colonne), symbole);
|
// multidoku.propagateSharedCase(getCase(ligne, colonne), symbole);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public Case getCase(int ligne, int colonne) {
|
public Case getCase(int ligne, int colonne) {
|
||||||
|
|||||||
@@ -3,12 +3,10 @@ package sudoku;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class Multidoku {
|
public class Multidoku {
|
||||||
private List<Sudoku> sudokus;
|
|
||||||
private List<SudokuPlacement> placements = new ArrayList<>();
|
private List<SudokuPlacement> placements = new ArrayList<>();
|
||||||
private List<ContrainteCasePartagee> contraintesPartagees;
|
private List<ContrainteCasePartagee> contraintesPartagees;
|
||||||
|
|
||||||
public Multidoku() {
|
public Multidoku() {
|
||||||
this.sudokus = new ArrayList<>();
|
|
||||||
this.contraintesPartagees = new ArrayList<>();
|
this.contraintesPartagees = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,12 +217,10 @@ public class Multidoku {
|
|||||||
public class ContrainteCasePartagee implements Contrainte {
|
public class ContrainteCasePartagee implements Contrainte {
|
||||||
private Map<Case, Case> casesLiees; // Map associant chaque case à sa correspondante
|
private Map<Case, Case> casesLiees; // Map associant chaque case à sa correspondante
|
||||||
private Set<Sudoku> sudokusLies;
|
private Set<Sudoku> sudokusLies;
|
||||||
private Multidoku multidoku;
|
|
||||||
|
|
||||||
public ContrainteCasePartagee(List<Case> cases, Multidoku multidoku) {
|
public ContrainteCasePartagee(List<Case> cases, Multidoku multidoku) {
|
||||||
this.casesLiees = new HashMap<>();
|
this.casesLiees = new HashMap<>();
|
||||||
this.sudokusLies = new HashSet<>();
|
this.sudokusLies = new HashSet<>();
|
||||||
this.multidoku = multidoku;
|
|
||||||
|
|
||||||
// Les cases sont données dans l'ordre : d'abord celles du premier sudoku,
|
// Les cases sont données dans l'ordre : d'abord celles du premier sudoku,
|
||||||
// puis celles du second dans le même ordre
|
// puis celles du second dans le même ordre
|
||||||
|
|||||||
@@ -4,12 +4,6 @@ import java.util.List;
|
|||||||
|
|
||||||
public class ResolveurBacktraceSimple implements Resolveur {
|
public class ResolveurBacktraceSimple implements Resolveur {
|
||||||
|
|
||||||
private final Sudoku sudoku;
|
|
||||||
|
|
||||||
public ResolveurBacktraceSimple(Sudoku sudoku) {
|
|
||||||
this.sudoku = sudoku;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean resoudre(Sudoku s, boolean afficherEtape) {
|
public boolean resoudre(Sudoku s, boolean afficherEtape) {
|
||||||
EtatResolution etat = new EtatResolution(0, 0);
|
EtatResolution etat = new EtatResolution(0, 0);
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ public class Sudoku {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void resolutionSudoku(Sudoku sudoku, boolean afficherEtape) {
|
private void resolutionSudoku(Sudoku sudoku, boolean afficherEtape) {
|
||||||
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
|
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||||
resolveur.resoudre(sudoku, afficherEtape);
|
resolveur.resoudre(sudoku, afficherEtape);
|
||||||
System.out.println("Sudoku résolu :");
|
System.out.println("Sudoku résolu :");
|
||||||
System.out.println(sudoku.getGrille().toString());
|
System.out.println(sudoku.getGrille().toString());
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class AppTest {
|
|||||||
|
|
||||||
System.out.println(sudoku.getGrille().toString());
|
System.out.println(sudoku.getGrille().toString());
|
||||||
|
|
||||||
Resolveur resolveur = new ResolveurBacktraceSimple(sudoku);
|
Resolveur resolveur = new ResolveurBacktraceSimple();
|
||||||
resolveur.resoudre(sudoku, false);
|
resolveur.resoudre(sudoku, false);
|
||||||
System.out.println("Sudoku résolu :");
|
System.out.println("Sudoku résolu :");
|
||||||
System.out.println(sudoku.getGrille().toString());
|
System.out.println(sudoku.getGrille().toString());
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class TestBlocParticuliers {
|
|||||||
System.out.println("Symboles possibles :");
|
System.out.println("Symboles possibles :");
|
||||||
sudoku.getGrille().printSymbolesPossibles();
|
sudoku.getGrille().printSymbolesPossibles();
|
||||||
|
|
||||||
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
|
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||||
resolveur.resoudre(sudoku, true);
|
resolveur.resoudre(sudoku, true);
|
||||||
|
|
||||||
System.out.println("Sudoku résolu :");
|
System.out.println("Sudoku résolu :");
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class TestResolveurBacktraceSimpleSudoku9 {
|
|||||||
System.out.println("Symboles possibles :");
|
System.out.println("Symboles possibles :");
|
||||||
sudoku.getGrille().printSymbolesPossibles();
|
sudoku.getGrille().printSymbolesPossibles();
|
||||||
|
|
||||||
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple(sudoku);
|
ResolveurBacktraceSimple resolveur = new ResolveurBacktraceSimple();
|
||||||
resolveur.resoudre(sudoku, false);
|
resolveur.resoudre(sudoku, false);
|
||||||
System.out.println("Sudoku resolu :");
|
System.out.println("Sudoku resolu :");
|
||||||
System.out.println(sudoku.getGrille().toString());
|
System.out.println(sudoku.getGrille().toString());
|
||||||
|
|||||||
Reference in New Issue
Block a user