Javadoc Sudoku

This commit is contained in:
2024-05-05 00:41:39 +02:00
parent aecb28232e
commit 508b423def
5 changed files with 133 additions and 15 deletions

View File

@@ -3,12 +3,24 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* La classe SudokuButtonListener écoute les événements des boutons dans une interface utilisateur de Sudoku.
* Lorsqu'un bouton est cliqué, cette classe affiche une boîte de dialogue demandant à l'utilisateur d'entrer un nombre,
* puis met à jour la grille de Sudoku en conséquence.
*/
public class SudokuButtonListener implements ActionListener {
private int row;
private int col;
private Sudoku sudoku;
private JButton[][] buttons;
/**
* 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 buttons La grille de boutons associée à l'interface utilisateur.
*/
public SudokuButtonListener(int row, int col, Sudoku sudoku, JButton[][] buttons) {
this.row = row;
this.col = col;
@@ -16,6 +28,11 @@ public class SudokuButtonListener implements ActionListener {
this.buttons = buttons;
}
/**
* 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
public void actionPerformed(ActionEvent e) {
String input = JOptionPane.showInputDialog("Entrez un nombre :");
@@ -39,10 +56,23 @@ 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.
* @return True si le nombre est valide pour cette position, False sinon.
*/
private boolean isValid(int num, int row, int col) {
return isValidRow(num, row) && isValidCol(num, col) && isValidBox(num, row - row % 3, col - col % 3);
}
/**
* 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.
*/
private boolean isValidRow(int num, int row) {
for (int i = 0; i < 9; i++) {
if (sudoku.getGrid().getCell(row, i).getValue() == num && i != col) {
@@ -52,6 +82,12 @@ public class SudokuButtonListener implements ActionListener {
return true;
}
/**
* 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.
*/
private boolean isValidCol(int num, int col) {
for (int i = 0; i < 9; i++) {
if (sudoku.getGrid().getCell(i, col).getValue() == num && i != row) {
@@ -61,6 +97,13 @@ public class SudokuButtonListener implements ActionListener {
return true;
}
/**
* 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.
* @return True si le nombre est valide dans cette boîte, False sinon.
*/
private boolean isValidBox(int num, int boxStartRow, int boxStartCol) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
@@ -73,4 +116,4 @@ public class SudokuButtonListener implements ActionListener {
}
return true;
}
}
}