Message quand gagné

This commit is contained in:
Vincent TEISSIER 2024-05-05 17:32:57 +02:00
parent 4cf7a8bb33
commit c7615e77ad
2 changed files with 19 additions and 5 deletions

@ -1,3 +1,5 @@
import javax.swing.JOptionPane;
/**
* La classe Sudoku représente un jeu de Sudoku avec une grille associée.
* Elle fournit des méthodes pour interagir avec la grille, telles que le chargement à partir d'un fichier,
@ -6,6 +8,7 @@
public class Sudoku {
private Grid grid;
private boolean solved;
private SudokuSolver solver;
/**
* Constructeur par défaut. Initialise un Sudoku avec une grille vide et non résolue.
@ -13,6 +16,7 @@ public class Sudoku {
public Sudoku() {
this.grid = new Grid();
this.solved = false;
this.solver = new SudokuSolver();
}
/**
@ -46,6 +50,16 @@ public class Sudoku {
public void loadGridFromFile(String fileName) {
this.grid.loadGridFromFile(fileName);
}
/**
* Vérifie si la grille est résolue.
*/
public void checkIfGridIsSolved() {
this.solved = solver.solve(grid);
if (this.solved) {
JOptionPane.showMessageDialog(null, "Félicitations ! La grille est résolue !");
}
}
/**
* Imprime la grille de Sudoku sur la sortie standard.
@ -60,5 +74,4 @@ public class Sudoku {
System.out.println(); // Passer à la ligne suivante après chaque ligne de la grille
}
}
}

@ -41,18 +41,19 @@ public class SudokuButtonListener implements ActionListener {
if (input != null && input.length() > 0) {
try {
int num = Integer.parseInt(input);
if (num >= 0 && num <= 9) { // Vérifie si le nombre est dans la plage autorisée
if (num >= 0 && num <= 9) {
sudoku.getGrid().getCell(row, col).setValue(num);
if (num == 0) {
buttons[row][col].setText(""); // Case vide si le nombre est 0
buttons[row][col].setText("");
} else {
buttons[row][col].setText(String.valueOf(num));
}
if (!isValid(num, row, col)) {
buttons[row][col].setForeground(Color.RED); // Met le texte en rouge en cas de mouvement invalide
buttons[row][col].setForeground(Color.RED);
} else {
buttons[row][col].setForeground(Color.BLACK); // Réinitialise la couleur du texte
buttons[row][col].setForeground(Color.BLACK);
}
sudoku.checkIfGridIsSolved(); // Vérifier si la grille est résolue après chaque ajout de nombre
} else {
JOptionPane.showMessageDialog(null, "Veuillez entrer un nombre entre 0 et 9.");
}