diff --git a/Cell.class b/Cell.class new file mode 100644 index 0000000..9ce07eb Binary files /dev/null and b/Cell.class differ diff --git a/GenerateGrid.class b/GenerateGrid.class new file mode 100644 index 0000000..df45084 Binary files /dev/null and b/GenerateGrid.class differ diff --git a/Grid.class b/Grid.class new file mode 100644 index 0000000..e986e1f Binary files /dev/null and b/Grid.class differ diff --git a/Sudoku.class b/Sudoku.class new file mode 100644 index 0000000..0f5db3e Binary files /dev/null and b/Sudoku.class differ diff --git a/SudokuButtonListener.class b/SudokuButtonListener.class new file mode 100644 index 0000000..f09e3c6 Binary files /dev/null and b/SudokuButtonListener.class differ diff --git a/SudokuCreator$1.class b/SudokuCreator$1.class new file mode 100644 index 0000000..2c0c77c Binary files /dev/null and b/SudokuCreator$1.class differ diff --git a/SudokuCreator$2.class b/SudokuCreator$2.class new file mode 100644 index 0000000..271c310 Binary files /dev/null and b/SudokuCreator$2.class differ diff --git a/SudokuCreator$3.class b/SudokuCreator$3.class new file mode 100644 index 0000000..9aea6bf Binary files /dev/null and b/SudokuCreator$3.class differ diff --git a/SudokuCreator.class b/SudokuCreator.class new file mode 100644 index 0000000..006e2e6 Binary files /dev/null and b/SudokuCreator.class differ diff --git a/SudokuGame$1.class b/SudokuGame$1.class new file mode 100644 index 0000000..d41774c Binary files /dev/null and b/SudokuGame$1.class differ diff --git a/SudokuGame$2.class b/SudokuGame$2.class new file mode 100644 index 0000000..dcc7b14 Binary files /dev/null and b/SudokuGame$2.class differ diff --git a/SudokuGame.class b/SudokuGame.class new file mode 100644 index 0000000..889f490 Binary files /dev/null and b/SudokuGame.class differ diff --git a/SudokuGame.java b/SudokuGame.java index 22ce52a..48af1ef 100644 --- a/SudokuGame.java +++ b/SudokuGame.java @@ -5,43 +5,38 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; -/** - * La classe SudokuGame étend la classe SudokuUI et représente une application de jeu de Sudoku avec des fonctionnalités supplémentaires telles que le chargement de grilles et la résolution automatique. - */ public class SudokuGame extends SudokuUI { - /** - * Constructeur de la classe SudokuGame. - * - * @param sudoku La grille de Sudoku à utiliser pour le jeu. - */ public SudokuGame(Sudoku sudoku) { super(sudoku); - createAdditionalButtons(); + + // Demander à l'utilisateur s'il veut jouer manuellement ou résoudre automatiquement + int option = JOptionPane.showOptionDialog(null, "Voulez-vous jouer manuellement ou résoudre automatiquement la grille de Sudoku ?", "Choix du mode", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[]{"Manuel", "Automatique"}, "Manuel"); + + // Activer ou désactiver les fonctionnalités en fonction du choix de l'utilisateur + if (option == JOptionPane.YES_OPTION) { // Manuel + createManualButtons(); + } else if (option == JOptionPane.NO_OPTION) { // Automatique + createAutoButtons(); + } } - /** - * Méthode pour obtenir le texte du titre de l'interface utilisateur. - * - * @return Le texte du titre. - */ @Override protected String getTitleText() { - return "Sudoku Game"; + return "Sudoku Game"; // Texte du titre pour le jeu Sudoku } - /** - * Méthode pour créer les boutons de chargement et de résolution et redimensionner la fenêtre. - */ - protected void createAdditionalButtons() { + protected void createManualButtons() { + createLoadButton(); + pack(); // Redimensionner la fenêtre pour s'adapter aux nouveaux boutons + } + + private void createAutoButtons() { createLoadButton(); createSolveButton(); pack(); // Redimensionner la fenêtre pour s'adapter aux nouveaux boutons } - /** - * Méthode pour créer le bouton de résolution. - */ private void createSolveButton() { JButton solveButton = new JButton("Résoudre (Automatique)"); solveButton.addActionListener(new ActionListener() { @@ -75,9 +70,6 @@ public class SudokuGame extends SudokuUI { add(buttonPanel, BorderLayout.SOUTH); } - /** - * Méthode pour créer le bouton de chargement. - */ private void createLoadButton() { JButton loadButton = new JButton("Charger"); loadButton.addActionListener(new ActionListener() { @@ -100,9 +92,6 @@ public class SudokuGame extends SudokuUI { add(buttonPanel, BorderLayout.NORTH); } - /** - * Méthode pour mettre à jour les valeurs des boutons de la grille après un chargement ou une résolution. - */ private void updateGrid() { Grid grid = sudoku.getGrid(); for (int row = 0; row < 9; row++) { @@ -114,10 +103,6 @@ public class SudokuGame extends SudokuUI { } } - /** - * Méthode pour vérifier si la grille est complètement remplie et si la solution est correcte. - * Affiche une alerte si la grille est résolue correctement. - */ private void checkGameCompletion() { Grid grid = sudoku.getGrid(); boolean isFull = true; @@ -139,25 +124,11 @@ public class SudokuGame extends SudokuUI { } } - /** - * Vérifie si le placement d'un nombre dans une cellule est sûr. - * - * @param grid La grille de Sudoku. - * @param row L'indice de ligne de la cellule. - * @param col L'indice de colonne de la cellule. - * @param num Le nombre à vérifier. - * @return True si le placement est sûr, False sinon. - */ private boolean isValidMove(Grid grid, int row, int col, int num) { // Votre logique de validation ici return false; } - /** - * Méthode principale pour démarrer le jeu de Sudoku. - * - * @param args Les arguments de la ligne de commande (non utilisés). - */ public static void main(String[] args) { Sudoku sudoku = new Sudoku(); new SudokuGame(sudoku); diff --git a/SudokuSolver.class b/SudokuSolver.class new file mode 100644 index 0000000..2445da5 Binary files /dev/null and b/SudokuSolver.class differ diff --git a/SudokuUI.class b/SudokuUI.class new file mode 100644 index 0000000..57f7fee Binary files /dev/null and b/SudokuUI.class differ