Fix le fait de pouvoir écrire un nombre plus grand que 9 et plus petit que 0
This commit is contained in:
parent
18bb7034a8
commit
186539e34c
@ -16,9 +16,10 @@ public class SudokuButtonListener implements ActionListener {
|
||||
|
||||
/**
|
||||
* Constructeur de SudokuButtonListener.
|
||||
* @param row L'indice de ligne du bouton.
|
||||
* @param col L'indice de colonne du bouton.
|
||||
* @param sudoku L'instance de Sudoku associée à l'interface utilisateur.
|
||||
*
|
||||
* @param row L'indice de ligne du bouton.
|
||||
* @param col L'indice de colonne du bouton.
|
||||
* @param sudoku L'instance de Sudoku associée à l'interface utilisateur.
|
||||
* @param buttons La grille de boutons associée à l'interface utilisateur.
|
||||
*/
|
||||
public SudokuButtonListener(int row, int col, Sudoku sudoku, JButton[][] buttons) {
|
||||
@ -31,6 +32,7 @@ public class SudokuButtonListener implements ActionListener {
|
||||
/**
|
||||
* Méthode invoquée lorsque le bouton associé à ce listener est cliqué.
|
||||
* Affiche une boîte de dialogue demandant à l'utilisateur d'entrer un nombre, puis met à jour la grille de Sudoku.
|
||||
*
|
||||
* @param e L'événement ActionEvent associé au clic du bouton.
|
||||
*/
|
||||
@Override
|
||||
@ -39,16 +41,20 @@ public class SudokuButtonListener implements ActionListener {
|
||||
if (input != null && input.length() > 0) {
|
||||
try {
|
||||
int num = Integer.parseInt(input);
|
||||
sudoku.getGrid().getCell(row, col).setValue(num);
|
||||
if (num == 0) {
|
||||
buttons[row][col].setText(""); // Case vide si le nombre est 0
|
||||
if (num >= 0 && num <= 9) { // Vérifie si le nombre est dans la plage autorisée
|
||||
sudoku.getGrid().getCell(row, col).setValue(num);
|
||||
if (num == 0) {
|
||||
buttons[row][col].setText(""); // Case vide si le nombre est 0
|
||||
} 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
|
||||
} else {
|
||||
buttons[row][col].setForeground(Color.BLACK); // Réinitialise la couleur du texte
|
||||
}
|
||||
} 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
|
||||
} else {
|
||||
buttons[row][col].setForeground(Color.BLACK); // Réinitialise la couleur du texte
|
||||
JOptionPane.showMessageDialog(null, "Veuillez entrer un nombre entre 0 et 9.");
|
||||
}
|
||||
} catch (NumberFormatException ex) {
|
||||
JOptionPane.showMessageDialog(null, "Veuillez entrer un nombre valide.");
|
||||
@ -58,6 +64,7 @@ public class SudokuButtonListener implements ActionListener {
|
||||
|
||||
/**
|
||||
* Vérifie si le nombre entré est valide pour la position donnée dans la grille de Sudoku.
|
||||
*
|
||||
* @param num Le nombre entré par l'utilisateur.
|
||||
* @param row L'indice de ligne de la cellule dans la grille.
|
||||
* @param col L'indice de colonne de la cellule dans la grille.
|
||||
@ -69,6 +76,7 @@ public class SudokuButtonListener implements ActionListener {
|
||||
|
||||
/**
|
||||
* Vérifie si le nombre est valide dans la ligne donnée de la grille de Sudoku.
|
||||
*
|
||||
* @param num Le nombre entré par l'utilisateur.
|
||||
* @param row L'indice de ligne de la cellule dans la grille.
|
||||
* @return True si le nombre est valide dans cette ligne, False sinon.
|
||||
@ -84,6 +92,7 @@ public class SudokuButtonListener implements ActionListener {
|
||||
|
||||
/**
|
||||
* Vérifie si le nombre est valide dans la colonne donnée de la grille de Sudoku.
|
||||
*
|
||||
* @param num Le nombre entré par l'utilisateur.
|
||||
* @param col L'indice de colonne de la cellule dans la grille.
|
||||
* @return True si le nombre est valide dans cette colonne, False sinon.
|
||||
@ -99,9 +108,10 @@ public class SudokuButtonListener implements ActionListener {
|
||||
|
||||
/**
|
||||
* Vérifie si le nombre est valide dans la boîte 3x3 contenant la cellule donnée.
|
||||
* @param num Le nombre entré par l'utilisateur.
|
||||
* @param boxStartRow L'indice de ligne du coin supérieur gauche de la boîte.
|
||||
* @param boxStartCol L'indice de colonne du coin supérieur gauche de la boîte.
|
||||
*
|
||||
* @param num Le nombre entré par l'utilisateur.
|
||||
* @param boxStartRow L'indice de ligne du coin supérieur gauche de la boîte.
|
||||
* @param boxStartCol L'indice de colonne du coin supérieur gauche de la boîte.
|
||||
* @return True si le nombre est valide dans cette boîte, False sinon.
|
||||
*/
|
||||
private boolean isValidBox(int num, int boxStartRow, int boxStartCol) {
|
||||
@ -116,4 +126,4 @@ public class SudokuButtonListener implements ActionListener {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user