diff --git a/Makefile b/Makefile index 8712f53..441d46b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # List of Java source files -SRCS := Cell.java GenerateGrid.java Grid.java Sudoku.java SudokuButtonListener.java SudokuSolver.java SudokuUI.java SudokuCreator.java +SRCS := Cell.java GenerateGrid.java Grid.java Sudoku.java SudokuButtonListener.java SudokuSolver.java SudokuUI.java SudokuCreator.java SudokuGame.java # Directory to store compiled class files BUILD_DIR := build diff --git a/SudokuGame.java b/SudokuGame.java index c4b65f4..09b8858 100644 --- a/SudokuGame.java +++ b/SudokuGame.java @@ -6,25 +6,41 @@ 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(); } + /** + * Méthode pour obtenir le texte du titre de l'interface utilisateur. + * @return Le texte du titre. + */ @Override protected String getTitleText() { return "Sudoku Game"; } + /** + * Méthode pour créer les boutons de chargement et de résolution et redimensionner la fenêtre. + */ protected void createAdditionalButtons() { 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"); solveButton.addActionListener(new ActionListener() { @@ -51,6 +67,9 @@ 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() { @@ -73,16 +92,24 @@ 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++) { for (int col = 0; col < 9; col++) { int value = grid.getCell(row, col).getValue(); buttons[row][col].setText(value == 0 ? "" : String.valueOf(value)); + buttons[row][col].setEnabled(value == 0); // Désactive les boutons pour les cellules déjà remplies } } } + /** + * 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/build/Cell.class b/build/Cell.class index c8b3b8c..9ce07eb 100644 Binary files a/build/Cell.class and b/build/Cell.class differ diff --git a/build/GenerateGrid.class b/build/GenerateGrid.class index a954a37..877a443 100644 Binary files a/build/GenerateGrid.class and b/build/GenerateGrid.class differ diff --git a/build/Grid.class b/build/Grid.class index c5d156a..e986e1f 100644 Binary files a/build/Grid.class and b/build/Grid.class differ diff --git a/build/SudokuCreator$1.class b/build/SudokuCreator$1.class index 3f399ec..1baacf8 100644 Binary files a/build/SudokuCreator$1.class and b/build/SudokuCreator$1.class differ diff --git a/build/SudokuCreator$2.class b/build/SudokuCreator$2.class index ec56a48..fd3f322 100644 Binary files a/build/SudokuCreator$2.class and b/build/SudokuCreator$2.class differ diff --git a/build/SudokuCreator$3.class b/build/SudokuCreator$3.class index f31b47b..373d6f7 100644 Binary files a/build/SudokuCreator$3.class and b/build/SudokuCreator$3.class differ diff --git a/build/SudokuCreator.class b/build/SudokuCreator.class index 1c0743a..e61e5b5 100644 Binary files a/build/SudokuCreator.class and b/build/SudokuCreator.class differ diff --git a/build/SudokuGame$1.class b/build/SudokuGame$1.class new file mode 100644 index 0000000..e0d69b5 Binary files /dev/null and b/build/SudokuGame$1.class differ diff --git a/build/SudokuGame$2.class b/build/SudokuGame$2.class new file mode 100644 index 0000000..ecd0425 Binary files /dev/null and b/build/SudokuGame$2.class differ diff --git a/build/SudokuGame.class b/build/SudokuGame.class new file mode 100644 index 0000000..48104c8 Binary files /dev/null and b/build/SudokuGame.class differ diff --git a/build/SudokuUI$1.class b/build/SudokuUI$1.class deleted file mode 100644 index d56e53b..0000000 Binary files a/build/SudokuUI$1.class and /dev/null differ diff --git a/build/SudokuUI$2.class b/build/SudokuUI$2.class deleted file mode 100644 index aeed762..0000000 Binary files a/build/SudokuUI$2.class and /dev/null differ diff --git a/build/SudokuUI$3.class b/build/SudokuUI$3.class deleted file mode 100644 index 433bfdc..0000000 Binary files a/build/SudokuUI$3.class and /dev/null differ diff --git a/build/SudokuUI.class b/build/SudokuUI.class index 23a50d8..94ce4b1 100644 Binary files a/build/SudokuUI.class and b/build/SudokuUI.class differ