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.
|
* Constructeur de SudokuButtonListener.
|
||||||
* @param row L'indice de ligne du bouton.
|
*
|
||||||
* @param col L'indice de colonne du bouton.
|
* @param row L'indice de ligne du bouton.
|
||||||
* @param sudoku L'instance de Sudoku associée à l'interface utilisateur.
|
* @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.
|
* @param buttons La grille de boutons associée à l'interface utilisateur.
|
||||||
*/
|
*/
|
||||||
public SudokuButtonListener(int row, int col, Sudoku sudoku, JButton[][] buttons) {
|
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é.
|
* 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.
|
* 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.
|
* @param e L'événement ActionEvent associé au clic du bouton.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -39,16 +41,20 @@ public class SudokuButtonListener implements ActionListener {
|
|||||||
if (input != null && input.length() > 0) {
|
if (input != null && input.length() > 0) {
|
||||||
try {
|
try {
|
||||||
int num = Integer.parseInt(input);
|
int num = Integer.parseInt(input);
|
||||||
sudoku.getGrid().getCell(row, col).setValue(num);
|
if (num >= 0 && num <= 9) { // Vérifie si le nombre est dans la plage autorisée
|
||||||
if (num == 0) {
|
sudoku.getGrid().getCell(row, col).setValue(num);
|
||||||
buttons[row][col].setText(""); // Case vide si le nombre est 0
|
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 {
|
} else {
|
||||||
buttons[row][col].setText(String.valueOf(num));
|
JOptionPane.showMessageDialog(null, "Veuillez entrer un nombre entre 0 et 9.");
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
}
|
||||||
} catch (NumberFormatException ex) {
|
} catch (NumberFormatException ex) {
|
||||||
JOptionPane.showMessageDialog(null, "Veuillez entrer un nombre valide.");
|
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.
|
* 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 num Le nombre entré par l'utilisateur.
|
||||||
* @param row L'indice de ligne de la cellule dans la grille.
|
* @param row L'indice de ligne de la cellule dans la grille.
|
||||||
* @param col L'indice de colonne 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.
|
* 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 num Le nombre entré par l'utilisateur.
|
||||||
* @param row L'indice de ligne de la cellule dans la grille.
|
* @param row L'indice de ligne de la cellule dans la grille.
|
||||||
* @return True si le nombre est valide dans cette ligne, False sinon.
|
* @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.
|
* 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 num Le nombre entré par l'utilisateur.
|
||||||
* @param col L'indice de colonne de la cellule dans la grille.
|
* @param col L'indice de colonne de la cellule dans la grille.
|
||||||
* @return True si le nombre est valide dans cette colonne, False sinon.
|
* @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.
|
* 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 num Le nombre entré par l'utilisateur.
|
||||||
* @param boxStartCol L'indice de colonne du coin supérieur gauche de la boîte.
|
* @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.
|
* @return True si le nombre est valide dans cette boîte, False sinon.
|
||||||
*/
|
*/
|
||||||
private boolean isValidBox(int num, int boxStartRow, int boxStartCol) {
|
private boolean isValidBox(int num, int boxStartRow, int boxStartCol) {
|
||||||
@ -116,4 +126,4 @@ public class SudokuButtonListener implements ActionListener {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user