import javax.swing.*; import java.awt.event.*; public class VerifButton implements ActionListener { private int GRID_SIZE; private JTextField[][] grid; public VerifButton(int GRID_SIZE, JTextField[][] grid) { this.GRID_SIZE = GRID_SIZE; this.grid = grid; } @Override public void actionPerformed(ActionEvent e) { if (grilleValide()) { JOptionPane.showMessageDialog(null, "La grille est valide.", "Validation", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "La grille n'est pas valide.", "Erreur", JOptionPane.ERROR_MESSAGE); } } private boolean grilleValide() { for (int i = 0; i < this.GRID_SIZE; i++) { for (int j = 0; j < this.GRID_SIZE; j++) { if (!grid[i][j].getText().isEmpty()) { int evaluant = Integer.parseInt(grid[i][j].getText()); // Test de validité sur les lignes for (int x = i + 1; x < this.GRID_SIZE; x++) { int comparateur = grid[x][j].getText().isEmpty() ? 0 : Integer.parseInt(grid[x][j].getText()); if (evaluant == comparateur) { return false; } } for (int x = i - 1; x >= 0; x--) { int comparateur = grid[x][j].getText().isEmpty() ? 0 : Integer.parseInt(grid[x][j].getText()); if (evaluant == comparateur) { return false; } } // Test de validité sur les colonnes for (int x = j + 1; x < this.GRID_SIZE; x++) { int comparateur = grid[i][x].getText().isEmpty() ? 0 : Integer.parseInt(grid[i][x].getText()); if (evaluant == comparateur) { return false; } } for (int x = j - 1; x >= 0; x--) { int comparateur = grid[i][x].getText().isEmpty() ? 0 : Integer.parseInt(grid[i][x].getText()); if (evaluant == comparateur) { return false; } } // Vérifier la validité dans les cases adjacentes for (int row = i - 1; row <= i + 1; row++) { for (int col = j - 1; col <= j + 1; col++) { // Exclure la case actuelle if (row == i && col == j) { continue; } // Vérifier que la case est dans les limites de la grille if (row >= 0 && row < GRID_SIZE && col >= 0 && col < GRID_SIZE) { // Vérifier la validité des regions if (!grid[row][col].getText().isEmpty()) { int comp = Integer.parseInt(grid[row][col].getText()); if (evaluant == comp) { return false; } } } } } } } } return true; } }