From 064ba1a91fa785e8e7e0e3a42d1b1256b89835e3 Mon Sep 17 00:00:00 2001 From: stiti Date: Mon, 29 Apr 2024 16:26:16 +0200 Subject: [PATCH] =?UTF-8?q?S=C3=A9paration=20des=20programmes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 19 ++--- src/{GridSolver => }/Button.java | 0 .../CongratulationsDialog.java | 0 src/{GridMaker => }/DialogManager.java | 0 .../GridMakerCase.java => GMCase.java} | 6 +- ...rCaseListener.java => GMCaseListener.java} | 6 +- .../GridMakerChecker.java => GMChecker.java} | 14 ++-- src/GMCheckerListener.java | 28 ++++++++ .../GridMakerGrid.java => GMGrid.java} | 10 +-- ...er.java => GMHomeButtonClickListener.java} | 6 +- .../HomeView.java => GMHomeView.java} | 6 +- ...ller.java => GMHowToCreateController.java} | 12 ++-- ...r.java => GMHowToCreateDialogManager.java} | 6 +- ...CreateView.java => GMHowToCreateView.java} | 8 +-- .../GridMakerImport.java => GMImport.java} | 10 +-- ...idMakerResetGrid.java => GMResetGrid.java} | 10 +-- .../GridMakerRules.java => GMRules.java} | 8 +-- .../GridMakerSaver.java => GMSaver.java} | 10 +-- ...er.java => GMUserInterfaceController.java} | 4 +- ...faceView.java => GMUserInterfaceView.java} | 24 +++---- src/{GridSolver => }/GSCase.java | 0 src/{GridSolver => }/GSCaseMouseListener.java | 0 src/{GridSolver => }/GSGrid.java | 0 ...er.java => GSHomeButtonClickListener.java} | 4 +- .../HomeView.java => GSHomeView.java} | 6 +- src/{GridSolver => }/GSImport.java | 0 src/{GridSolver => }/GSMenu.java | 0 src/{GridSolver => }/GSMenuController.java | 0 src/{GridSolver => }/GSPlay.java | 0 src/{GridSolver => }/GSPlayController.java | 0 src/{GridSolver => }/GSSolver.java | 0 src/{GridSolver => }/GSTest.java | 0 src/{GridSolver => }/GSWin.java | 0 src/{GridMaker/Main.java => GridMaker.java} | 4 +- src/GridMaker/Button.java | 72 ------------------- src/GridMaker/GridMakerCheckerListener.java | 28 -------- src/{GridSolver/Main.java => GridSolver.java} | 4 +- src/GridSolver/DialogManager.java | 10 --- src/GridSolver/MusicButton.java | 47 ------------ src/GridSolver/MusicPlayer.java | 57 --------------- src/GridSolver/RulesDialogManager.java | 20 ------ src/GridSolver/RulesSudoku.java | 49 ------------- src/GridSolver/Title.java | 26 ------- src/GridSolver/Window.java | 71 ------------------ src/{GridMaker => }/MusicButton.java | 0 src/{GridMaker => }/MusicPlayer.java | 0 src/{GridMaker => }/RulesDialogManager.java | 0 src/{GridMaker => }/RulesSudoku.java | 0 src/{GridMaker => }/Title.java | 0 src/{GridMaker => }/Window.java | 0 50 files changed, 113 insertions(+), 472 deletions(-) rename src/{GridSolver => }/Button.java (100%) rename src/{GridSolver => }/CongratulationsDialog.java (100%) rename src/{GridMaker => }/DialogManager.java (100%) rename src/{GridMaker/GridMakerCase.java => GMCase.java} (90%) rename src/{GridMaker/GridMakerCaseListener.java => GMCaseListener.java} (90%) rename src/{GridMaker/GridMakerChecker.java => GMChecker.java} (87%) create mode 100644 src/GMCheckerListener.java rename src/{GridMaker/GridMakerGrid.java => GMGrid.java} (90%) rename src/{GridMaker/HomeButtonClickListener.java => GMHomeButtonClickListener.java} (83%) rename src/{GridMaker/HomeView.java => GMHomeView.java} (96%) rename src/{GridMaker/GridMakerHowToCreateController.java => GMHowToCreateController.java} (59%) rename src/{GridMaker/GridMakerHowToCreateDialogManager.java => GMHowToCreateDialogManager.java} (65%) rename src/{GridMaker/GridMakerHowToCreateView.java => GMHowToCreateView.java} (89%) rename src/{GridMaker/GridMakerImport.java => GMImport.java} (86%) rename src/{GridMaker/GridMakerResetGrid.java => GMResetGrid.java} (70%) rename src/{GridMaker/GridMakerRules.java => GMRules.java} (78%) rename src/{GridMaker/GridMakerSaver.java => GMSaver.java} (89%) rename src/{GridMaker/GridMakeUserInterfaceController.java => GMUserInterfaceController.java} (63%) rename src/{GridMaker/GridMakeUserInterfaceView.java => GMUserInterfaceView.java} (68%) rename src/{GridSolver => }/GSCase.java (100%) rename src/{GridSolver => }/GSCaseMouseListener.java (100%) rename src/{GridSolver => }/GSGrid.java (100%) rename src/{GridSolver/HomeButtonClickListener.java => GSHomeButtonClickListener.java} (92%) rename src/{GridSolver/HomeView.java => GSHomeView.java} (96%) rename src/{GridSolver => }/GSImport.java (100%) rename src/{GridSolver => }/GSMenu.java (100%) rename src/{GridSolver => }/GSMenuController.java (100%) rename src/{GridSolver => }/GSPlay.java (100%) rename src/{GridSolver => }/GSPlayController.java (100%) rename src/{GridSolver => }/GSSolver.java (100%) rename src/{GridSolver => }/GSTest.java (100%) rename src/{GridSolver => }/GSWin.java (100%) rename src/{GridMaker/Main.java => GridMaker.java} (51%) delete mode 100644 src/GridMaker/Button.java delete mode 100644 src/GridMaker/GridMakerCheckerListener.java rename src/{GridSolver/Main.java => GridSolver.java} (51%) delete mode 100644 src/GridSolver/DialogManager.java delete mode 100644 src/GridSolver/MusicButton.java delete mode 100644 src/GridSolver/MusicPlayer.java delete mode 100644 src/GridSolver/RulesDialogManager.java delete mode 100644 src/GridSolver/RulesSudoku.java delete mode 100644 src/GridSolver/Title.java delete mode 100644 src/GridSolver/Window.java rename src/{GridMaker => }/MusicButton.java (100%) rename src/{GridMaker => }/MusicPlayer.java (100%) rename src/{GridMaker => }/RulesDialogManager.java (100%) rename src/{GridMaker => }/RulesSudoku.java (100%) rename src/{GridMaker => }/Title.java (100%) rename src/{GridMaker => }/Window.java (100%) diff --git a/Makefile b/Makefile index 33dbd90..f83a2d0 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,10 @@ -# If the first argument is "run"... -ifeq (run,$(firstword $(MAKECMDGOALS))) - # use the rest as arguments for "run" - RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) - # ...and turn them into do-nothing targets - $(eval $(RUN_ARGS):;@:) -endif - -### VARIABLES ### JC := javac JCFLAGS := -encoding UTF-8 -implicit:none JVM := java JVMFLAGS := -SRCDIR := ./src/GridSolver +SRCDIR := ./src OUTDIR := ./out DOCDIR := ./doc SRC := $(wildcard $(SRCDIR)/*.java) @@ -25,11 +16,13 @@ $(OUTDIR)/%.class : $(SRCDIR)/%.java @mkdir -p $(@D) ${JC} ${JCFLAGS} -cp $(SRCDIR) -d $(OUTDIR) $< - ### REGLES OPTIONNELLES ### -run : $(OFILES) - ${JVM} ${JVMFLAGS} -cp $(OUTDIR) Main $(RUN_ARGS) +GridMaker : $(OFILES) + ${JVM} ${JVMFLAGS} -cp $(OUTDIR) GridMaker $(RUN_ARGS) + +GridSolver : $(OFILES) + ${JVM} ${JVMFLAGS} -cp $(OUTDIR) GridSolver $(RUN_ARGS) clean : -rm -rf $(OUTDIR) diff --git a/src/GridSolver/Button.java b/src/Button.java similarity index 100% rename from src/GridSolver/Button.java rename to src/Button.java diff --git a/src/GridSolver/CongratulationsDialog.java b/src/CongratulationsDialog.java similarity index 100% rename from src/GridSolver/CongratulationsDialog.java rename to src/CongratulationsDialog.java diff --git a/src/GridMaker/DialogManager.java b/src/DialogManager.java similarity index 100% rename from src/GridMaker/DialogManager.java rename to src/DialogManager.java diff --git a/src/GridMaker/GridMakerCase.java b/src/GMCase.java similarity index 90% rename from src/GridMaker/GridMakerCase.java rename to src/GMCase.java index fd18175..3edb7bc 100755 --- a/src/GridMaker/GridMakerCase.java +++ b/src/GMCase.java @@ -8,7 +8,7 @@ import javax.swing.*; * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerCase extends JPanel { +public class GMCase extends JPanel { private int cellValue = 0; // Valeur actuelle de la case private String displayText = ""; // Texte à afficher dans la case @@ -18,7 +18,7 @@ public class GridMakerCase extends JPanel { * Constructeur par défaut de GridMakerCase. * Initialise le bouton avec les propriétés nécessaires, crée un GridMakerCaseListener et l'ajoute au bouton. */ - public GridMakerCase() { + public GMCase() { actionButton.setOpaque(false); actionButton.setContentAreaFilled(false); actionButton.setBorderPainted(false); @@ -31,7 +31,7 @@ public class GridMakerCase extends JPanel { setPreferredSize(new Dimension(60, 60)); // Crée un GridMakerCaseListener et l'ajoute au bouton - GridMakerCaseListener listener = new GridMakerCaseListener(this); + GMCaseListener listener = new GMCaseListener(this); actionButton.addKeyListener(listener); } diff --git a/src/GridMaker/GridMakerCaseListener.java b/src/GMCaseListener.java similarity index 90% rename from src/GridMaker/GridMakerCaseListener.java rename to src/GMCaseListener.java index 97ab156..97f4210 100644 --- a/src/GridMaker/GridMakerCaseListener.java +++ b/src/GMCaseListener.java @@ -7,15 +7,15 @@ import java.awt.event.KeyListener; * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerCaseListener implements KeyListener { +public class GMCaseListener implements KeyListener { - private GridMakerCase gridMakerCase; + private GMCase gridMakerCase; /** * Constructeur de GridMakerCaseListener. * @param gridMakerCase La case à écouter. */ - public GridMakerCaseListener(GridMakerCase gridMakerCase) { + public GMCaseListener(GMCase gridMakerCase) { this.gridMakerCase = gridMakerCase; } diff --git a/src/GridMaker/GridMakerChecker.java b/src/GMChecker.java similarity index 87% rename from src/GridMaker/GridMakerChecker.java rename to src/GMChecker.java index 5f0cdab..c4ccb73 100755 --- a/src/GridMaker/GridMakerChecker.java +++ b/src/GMChecker.java @@ -1,24 +1,24 @@ import javax.swing.*; /** - * La classe GridMakerChecker est utilisée pour vérifier la cohérence de la grille. + * La classe GMChecker est utilisée pour vérifier la cohérence de la grille. * Elle vérifie si les lignes, les colonnes et les régions de la grille respectent les règles du jeu. * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerChecker { +public class GMChecker { - private GridMakerGrid grid; - private GridMakerCheckerListener checkerListener; + private GMGrid grid; + private GMCheckerListener checkerListener; /** - * Constructeur pour créer une instance de GridMakerChecker. + * Constructeur pour créer une instance de GMChecker. * @param grid La grille à vérifier */ - public GridMakerChecker(GridMakerGrid grid) { + public GMChecker(GMGrid grid) { this.grid = grid; - this.checkerListener = new GridMakerCheckerListener(this); + this.checkerListener = new GMCheckerListener(this); } diff --git a/src/GMCheckerListener.java b/src/GMCheckerListener.java new file mode 100644 index 0000000..17fe91f --- /dev/null +++ b/src/GMCheckerListener.java @@ -0,0 +1,28 @@ +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/** + * La classe GMCheckerListener est utilisée pour gérer les événements liés à la vérification de la grille. + */ +public class GMCheckerListener implements ActionListener { + + private GMChecker gridMakerChecker; + + /** + * Constructeur de GMCheckerListener. + * @param gridMakerChecker L'instance de GMChecker à utiliser. + */ + public GMCheckerListener(GMChecker gridMakerChecker) { + this.gridMakerChecker = gridMakerChecker; + } + + /** + * Méthode invoquée lorsqu'un bouton est cliqué. + * Lance la vérification de la grille. + * @param e L'événement d'action + */ + @Override + public void actionPerformed(ActionEvent e) { + gridMakerChecker.checkGrid(); + } +} diff --git a/src/GridMaker/GridMakerGrid.java b/src/GMGrid.java similarity index 90% rename from src/GridMaker/GridMakerGrid.java rename to src/GMGrid.java index 3536a28..f53734c 100755 --- a/src/GridMaker/GridMakerGrid.java +++ b/src/GMGrid.java @@ -12,16 +12,16 @@ import javax.swing.border.Border; * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerGrid extends JPanel { +public class GMGrid extends JPanel { private int[][] gridValues = new int[9][9]; // Stores the values of each cell in the grid - private GridMakerCase[][] gridCases = new GridMakerCase[9][9]; // Represents the individual cells in the grid + private GMCase[][] gridCases = new GMCase[9][9]; // Represents the individual cells in the grid private int[] exportedGrid = new int[9]; // Stores the grid values in an exportable format /** - * Constructs a new GridMakerGrid object and initializes the grid. + * Constructs a new GMGrid object and initializes the grid. */ - public GridMakerGrid() { + public GMGrid() { setupGrid(); setBackground(new Color(54, 91, 109)); // On change la couleur de fond (les cotés de la grille) } @@ -53,7 +53,7 @@ public class GridMakerGrid extends JPanel { for (int j = 0; j < 9; j++) { int zoneRow = i / 3; int zoneCol = j / 3; - gridCases[i][j] = new GridMakerCase(); + gridCases[i][j] = new GMCase(); zones[zoneRow][zoneCol].add(gridCases[i][j]); gridCases[i][j].setBorder(determineBorder(i, j)); // Utilisation de la fonction pour définir les bordures } diff --git a/src/GridMaker/HomeButtonClickListener.java b/src/GMHomeButtonClickListener.java similarity index 83% rename from src/GridMaker/HomeButtonClickListener.java rename to src/GMHomeButtonClickListener.java index 9d729ad..f00c48b 100644 --- a/src/GridMaker/HomeButtonClickListener.java +++ b/src/GMHomeButtonClickListener.java @@ -8,7 +8,7 @@ import java.awt.event.ActionListener; * @author Moncef STITI * @author Marco ORFAO */ -class HomeButtonClickListener implements ActionListener { +class GMHomeButtonClickListener implements ActionListener { private Window window; private DialogManager rulesDialogManager; @@ -16,7 +16,7 @@ class HomeButtonClickListener implements ActionListener { * Constructs a ButtonClickListener with the specified window. * @param window The window where the actions will be performed. */ - public HomeButtonClickListener(Window window) { + public GMHomeButtonClickListener(Window window) { this.window = window; this.rulesDialogManager = new RulesDialogManager(); } @@ -31,7 +31,7 @@ class HomeButtonClickListener implements ActionListener { switch (buttonText) { case "Générer une grille": Window.removeAllComponents(this.window); - GridMakeUserInterfaceView vueCreationGrille = new GridMakeUserInterfaceView(this.window); // Lancer le créateur de grille + GMUserInterfaceView vueCreationGrille = new GMUserInterfaceView(this.window); // Lancer le créateur de grille break; case "Règles": rulesDialogManager.showDialog(); // Afficher les règles diff --git a/src/GridMaker/HomeView.java b/src/GMHomeView.java similarity index 96% rename from src/GridMaker/HomeView.java rename to src/GMHomeView.java index 7e317d8..0981c72 100644 --- a/src/GridMaker/HomeView.java +++ b/src/GMHomeView.java @@ -10,7 +10,7 @@ import java.awt.*; * @author Moncef STITI * @author Marco ORFAO */ -public class HomeView extends JPanel { +public class GMHomeView extends JPanel { // Constantes pour les chemins des icônes et des fichiers audio, ainsi que pour les dimensions et les couleurs private final String AUDIO_ON = "img/iconeAudio.png"; @@ -41,7 +41,7 @@ public class HomeView extends JPanel { * Initialise la fenêtre parente et crée les composants de la page d'accueil. * @param window La fenêtre parente. */ - public HomeView(Window window) { + public GMHomeView(Window window) { this.window = window; createComponents(); addComponentsToWindow(); @@ -70,7 +70,7 @@ public class HomeView extends JPanel { buttonPanel.setLayout(buttonLayout); buttonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); buttonPanel.setBackground(BACKGROUND_COLOR); - HomeButtonClickListener listenerButton = new HomeButtonClickListener(window); + GMHomeButtonClickListener listenerButton = new GMHomeButtonClickListener(window); for (String text : BUTTON_TEXTS) { Button button = new Button(text, BUTTON_SIZE, BUTTON_FONT, Color.white); button.addActionListener(listenerButton); diff --git a/src/GridMaker/GridMakerHowToCreateController.java b/src/GMHowToCreateController.java similarity index 59% rename from src/GridMaker/GridMakerHowToCreateController.java rename to src/GMHowToCreateController.java index 528e098..174d452 100755 --- a/src/GridMaker/GridMakerHowToCreateController.java +++ b/src/GMHowToCreateController.java @@ -1,21 +1,21 @@ import java.awt.event.*; /** - * La classe GridMakerHowToCreateController est un contrôleur qui gère l'affichage de la fenêtre de création de grille. + * La classe GMHowToCreateController est un contrôleur qui gère l'affichage de la fenêtre de création de grille. * Elle implémente l'interface ActionListener pour réagir aux événements de clic sur un bouton. * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerHowToCreateController implements ActionListener { - private GridMakerHowToCreateDialogManager howToCreateGrid; +public class GMHowToCreateController implements ActionListener { + private GMHowToCreateDialogManager howToCreateGrid; /** - * Constructeur pour créer une instance de GridMakerHowToCreateController. + * Constructeur pour créer une instance de GMHowToCreateController. * Initialise le gestionnaire de dialogue pour la création de grille. */ - public GridMakerHowToCreateController(){ - this.howToCreateGrid = new GridMakerHowToCreateDialogManager(); + public GMHowToCreateController(){ + this.howToCreateGrid = new GMHowToCreateDialogManager(); } /** diff --git a/src/GridMaker/GridMakerHowToCreateDialogManager.java b/src/GMHowToCreateDialogManager.java similarity index 65% rename from src/GridMaker/GridMakerHowToCreateDialogManager.java rename to src/GMHowToCreateDialogManager.java index 75bf957..e9a4ffc 100644 --- a/src/GridMaker/GridMakerHowToCreateDialogManager.java +++ b/src/GMHowToCreateDialogManager.java @@ -1,21 +1,21 @@ import javax.swing.JOptionPane; /** - * La classe GridMakerHowToCreateDialogManager est un gestionnaire de dialogue qui affiche des instructions + * La classe GMHowToCreateDialogManager est un gestionnaire de dialogue qui affiche des instructions * sur la manière de créer une grille dans une boîte de dialogue. * Elle implémente l'interface DialogManager. * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerHowToCreateDialogManager implements DialogManager { +public class GMHowToCreateDialogManager implements DialogManager { /** * Méthode pour afficher la boîte de dialogue avec les instructions de création de grille. */ @Override public void showDialog() { - GridMakerHowToCreateView howToCreateGrid = new GridMakerHowToCreateView(); + GMHowToCreateView howToCreateGrid = new GMHowToCreateView(); JOptionPane.showMessageDialog(null, howToCreateGrid, "Comment créer une grille ?", JOptionPane.PLAIN_MESSAGE); } } diff --git a/src/GridMaker/GridMakerHowToCreateView.java b/src/GMHowToCreateView.java similarity index 89% rename from src/GridMaker/GridMakerHowToCreateView.java rename to src/GMHowToCreateView.java index 7943673..ca00c7f 100644 --- a/src/GridMaker/GridMakerHowToCreateView.java +++ b/src/GMHowToCreateView.java @@ -2,13 +2,13 @@ import javax.swing.*; import java.awt.*; /** - * La classe GridMakerHowToCreateView est une vue qui affiche les instructions pour créer une grille dans une boîte de dialogue. + * La classe GMHowToCreateView est une vue qui affiche les instructions pour créer une grille dans une boîte de dialogue. * Elle hérite de JPanel pour servir de composant d'interface utilisateur. * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerHowToCreateView extends JPanel { +public class GMHowToCreateView extends JPanel { private Dimension FRAME_SIZE = new Dimension(600, 500); private Color BACKGROUND_COLOR = new Color(54, 91, 109); @@ -25,10 +25,10 @@ public class GridMakerHowToCreateView extends JPanel { private Font TEXT_FONT = new Font("Arial", Font.PLAIN, 20); /** - * Constructeur pour créer une instance de GridMakerHowToCreateView. + * Constructeur pour créer une instance de GMHowToCreateView. * Initialise les composants de la vue et les dispose selon un BorderLayout. */ - public GridMakerHowToCreateView() { + public GMHowToCreateView() { BorderLayout borderLayout = new BorderLayout(); this.setLayout(borderLayout); this.setBackground(this.BACKGROUND_COLOR); // Définit la couleur d'arrière-plan du panneau diff --git a/src/GridMaker/GridMakerImport.java b/src/GMImport.java similarity index 86% rename from src/GridMaker/GridMakerImport.java rename to src/GMImport.java index b17dc99..2140cee 100755 --- a/src/GridMaker/GridMakerImport.java +++ b/src/GMImport.java @@ -4,26 +4,26 @@ import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; /** - * La classe GridMakerImport est utilisée pour importer une grille à partir d'un fichier. + * La classe GMImport est utilisée pour importer une grille à partir d'un fichier. * Elle implémente l'interface ActionListener pour réagir aux événements de clic sur un bouton. * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerImport implements ActionListener { +public class GMImport implements ActionListener { private JFrame previousFrame; - private GridMakerGrid grid; + private GMGrid grid; private boolean accessible; private File file; private int[] importedValues = new int[9]; /** - * Constructeur pour créer une instance de GridMakerImport. + * Constructeur pour créer une instance de GMImport. * @param frame La fenêtre précédente * @param sudokuGrid La grille Sudoku */ - public GridMakerImport(JFrame frame, GridMakerGrid sudokuGrid) { + public GMImport(JFrame frame, GMGrid sudokuGrid) { this.previousFrame = frame; this.grid = sudokuGrid; } diff --git a/src/GridMaker/GridMakerResetGrid.java b/src/GMResetGrid.java similarity index 70% rename from src/GridMaker/GridMakerResetGrid.java rename to src/GMResetGrid.java index 6d4c3b7..ea0cc03 100755 --- a/src/GridMaker/GridMakerResetGrid.java +++ b/src/GMResetGrid.java @@ -2,25 +2,25 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** - * La classe GridMakerResetGrid sert à crée une nouvelle grille de 0. + * La classe GMResetGrid sert à crée une nouvelle grille de 0. * * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerResetGrid implements ActionListener { +public class GMResetGrid implements ActionListener { /** * La grille à réinitialiser. */ - private GridMakerGrid myGrid; + private GMGrid myGrid; /** - * Constructeur pour créer une instance de GridMakerResetGrid. + * Constructeur pour créer une instance de GMResetGrid. * @param grid Grille à réinitialiser */ - public GridMakerResetGrid(GridMakerGrid grid) { + public GMResetGrid(GMGrid grid) { this.myGrid = grid; } diff --git a/src/GridMaker/GridMakerRules.java b/src/GMRules.java similarity index 78% rename from src/GridMaker/GridMakerRules.java rename to src/GMRules.java index c206cdc..76b8f10 100755 --- a/src/GridMaker/GridMakerRules.java +++ b/src/GMRules.java @@ -1,20 +1,20 @@ import java.awt.event.*; /** - * GridMakerRules gère les actions liées aux règles du jeu. + * GMRules gère les actions liées aux règles du jeu. * Cette classe implémente ActionListener pour réagir aux clics sur un bouton. * @version 1.0 * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerRules implements ActionListener { +public class GMRules implements ActionListener { private RulesDialogManager rulesDialog; // Gestionnaire de la boîte de dialogue des règles /** - * Constructeur de GridMakerRules. + * Constructeur de GMRules. * Initialise le gestionnaire de boîte de dialogue des règles. */ - public GridMakerRules(){ + public GMRules(){ this.rulesDialog = new RulesDialogManager(); } diff --git a/src/GridMaker/GridMakerSaver.java b/src/GMSaver.java similarity index 89% rename from src/GridMaker/GridMakerSaver.java rename to src/GMSaver.java index 6e62565..fb85909 100755 --- a/src/GridMaker/GridMakerSaver.java +++ b/src/GMSaver.java @@ -13,18 +13,18 @@ import java.awt.event.ActionEvent; * @author Moncef STITI * @author Marco ORFAO */ -public class GridMakerSaver implements ActionListener { +public class GMSaver implements ActionListener { private File selectedFile; // Le fichier sélectionné pour sauvegarde private JFrame parentFrame; // La fenêtre parent - private GridMakerGrid grid; // La grille de jeu à sauvegarder + private GMGrid grid; // La grille de jeu à sauvegarder /** - * Constructeur de la classe GridMakerSaver. + * Constructeur de la classe GMSaver. * @param parentFrame La fenêtre parent. * @param grid La grille de jeu à sauvegarder. */ - public GridMakerSaver(JFrame parentFrame, GridMakerGrid grid) { + public GMSaver(JFrame parentFrame, GMGrid grid) { this.parentFrame = parentFrame; this.grid = grid; } @@ -48,7 +48,7 @@ public class GridMakerSaver implements ActionListener { * @return true si la grille est valide, sinon false. */ private boolean isValidGrid() { - GridMakerChecker test = new GridMakerChecker(grid); + GMChecker test = new GMChecker(grid); return test.isCorrect(); } diff --git a/src/GridMaker/GridMakeUserInterfaceController.java b/src/GMUserInterfaceController.java similarity index 63% rename from src/GridMaker/GridMakeUserInterfaceController.java rename to src/GMUserInterfaceController.java index d7a9997..6cb5ac1 100644 --- a/src/GridMaker/GridMakeUserInterfaceController.java +++ b/src/GMUserInterfaceController.java @@ -1,10 +1,10 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -public class GridMakeUserInterfaceController implements ActionListener { +public class GMUserInterfaceController implements ActionListener { private Window window; - public GridMakeUserInterfaceController(Window window) { + public GMUserInterfaceController(Window window) { this.window = window; } diff --git a/src/GridMaker/GridMakeUserInterfaceView.java b/src/GMUserInterfaceView.java similarity index 68% rename from src/GridMaker/GridMakeUserInterfaceView.java rename to src/GMUserInterfaceView.java index f98c78a..cbd35f8 100755 --- a/src/GridMaker/GridMakeUserInterfaceView.java +++ b/src/GMUserInterfaceView.java @@ -6,18 +6,18 @@ import java.awt.BorderLayout; import java.awt.event.ActionListener; -public class GridMakeUserInterfaceView { +public class GMUserInterfaceView { private JMenuBar menuBar = new JMenuBar(); private Container content; - private GridMakerGrid grid; + private GMGrid grid; - public GridMakeUserInterfaceView(Window window) { + public GMUserInterfaceView(Window window) { window.setPageTitle("Créateur de grille"); content = window.getContentPane(); BorderLayout gestionnaire = new BorderLayout(); content.setLayout(gestionnaire); - grid = new GridMakerGrid(); + grid = new GMGrid(); // Création des menus JMenu menuFichier = createMenu("Fichier"); @@ -25,20 +25,20 @@ public class GridMakeUserInterfaceView { JMenu menuAide = createMenu("Aide"); // Ajout des éléments de menu - JMenuItem nouveauItem = createMenuItem("Nouveau", new GridMakerResetGrid(grid)); - JMenuItem chargerItem = createMenuItem("Charger", new GridMakerImport(window, grid)); - JMenuItem sauvegarderItem = createMenuItem("Sauvegarder", new GridMakerSaver(window, grid)); - GridMakerChecker checker = new GridMakerChecker(grid); // Créez une instance de GridMakerChecker - GridMakerCheckerListener checkerListener = new GridMakerCheckerListener(checker); // Créez une instance de GridMakerCheckerListener en passant GridMakerChecker en argument + JMenuItem nouveauItem = createMenuItem("Nouveau", new GMResetGrid(grid)); + JMenuItem chargerItem = createMenuItem("Charger", new GMImport(window, grid)); + JMenuItem sauvegarderItem = createMenuItem("Sauvegarder", new GMSaver(window, grid)); + GMChecker checker = new GMChecker(grid); // Créez une instance de GMChecker + GMCheckerListener checkerListener = new GMCheckerListener(checker); // Créez une instance de GMCheckerListener en passant GMChecker en argument JMenuItem verifierItem = createMenuItem("Vérifier", checkerListener); - JMenuItem aideGrilleItem = createMenuItem("Comment créer une grille", new GridMakerHowToCreateController()); - JMenuItem reglesSudokuItem = createMenuItem("Règles du Sudoku", new GridMakerRules()); + JMenuItem aideGrilleItem = createMenuItem("Comment créer une grille", new GMHowToCreateController()); + JMenuItem reglesSudokuItem = createMenuItem("Règles du Sudoku", new GMRules()); // Ajout du menu "Jouer" JMenu menuJouer = createMenu("Quitter"); // Création de l'élément de menu "Retour" - JMenuItem retourMenu = createMenuItem("Quitter",new GridMakeUserInterfaceController(window)); + JMenuItem retourMenu = createMenuItem("Quitter",new GMUserInterfaceController(window)); // Ajout de l'élément "Retour" au menu "Jouer" menuJouer.add(retourMenu); // Ajout du menu "Jouer" à la barre de menu diff --git a/src/GridSolver/GSCase.java b/src/GSCase.java similarity index 100% rename from src/GridSolver/GSCase.java rename to src/GSCase.java diff --git a/src/GridSolver/GSCaseMouseListener.java b/src/GSCaseMouseListener.java similarity index 100% rename from src/GridSolver/GSCaseMouseListener.java rename to src/GSCaseMouseListener.java diff --git a/src/GridSolver/GSGrid.java b/src/GSGrid.java similarity index 100% rename from src/GridSolver/GSGrid.java rename to src/GSGrid.java diff --git a/src/GridSolver/HomeButtonClickListener.java b/src/GSHomeButtonClickListener.java similarity index 92% rename from src/GridSolver/HomeButtonClickListener.java rename to src/GSHomeButtonClickListener.java index 2706b76..d49abc6 100644 --- a/src/GridSolver/HomeButtonClickListener.java +++ b/src/GSHomeButtonClickListener.java @@ -8,7 +8,7 @@ import java.awt.event.ActionListener; * @author Moncef STITI * @author Marco ORFAO */ -class HomeButtonClickListener implements ActionListener { +class GSHomeButtonClickListener implements ActionListener { private Window window; private DialogManager rulesDialogManager; private GSMenu menuJeu; @@ -17,7 +17,7 @@ class HomeButtonClickListener implements ActionListener { * Constructs a ButtonClickListener with the specified window. * @param window The window where the actions will be performed. */ - public HomeButtonClickListener(Window window) { + public GSHomeButtonClickListener(Window window) { this.window = window; this.rulesDialogManager = new RulesDialogManager(); } diff --git a/src/GridSolver/HomeView.java b/src/GSHomeView.java similarity index 96% rename from src/GridSolver/HomeView.java rename to src/GSHomeView.java index d0f2528..c9c04e7 100644 --- a/src/GridSolver/HomeView.java +++ b/src/GSHomeView.java @@ -10,7 +10,7 @@ import java.awt.*; * @author Moncef STITI * @author Marco ORFAO */ -public class HomeView extends JPanel { +public class GSHomeView extends JPanel { // Constantes pour les chemins des icônes et des fichiers audio, ainsi que pour les dimensions et les couleurs private final String AUDIO_ON = "img/iconeAudio.png"; @@ -41,7 +41,7 @@ public class HomeView extends JPanel { * Initialise la fenêtre parente et crée les composants de la page d'accueil. * @param window La fenêtre parente. */ - public HomeView(Window window) { + public GSHomeView(Window window) { this.window = window; createComponents(); addComponentsToWindow(); @@ -70,7 +70,7 @@ public class HomeView extends JPanel { buttonPanel.setLayout(buttonLayout); buttonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); buttonPanel.setBackground(BACKGROUND_COLOR); - HomeButtonClickListener listenerButton = new HomeButtonClickListener(window); + GSHomeButtonClickListener listenerButton = new GSHomeButtonClickListener(window); for (String text : BUTTON_TEXTS) { Button button = new Button(text, BUTTON_SIZE, BUTTON_FONT, Color.white); button.addActionListener(listenerButton); diff --git a/src/GridSolver/GSImport.java b/src/GSImport.java similarity index 100% rename from src/GridSolver/GSImport.java rename to src/GSImport.java diff --git a/src/GridSolver/GSMenu.java b/src/GSMenu.java similarity index 100% rename from src/GridSolver/GSMenu.java rename to src/GSMenu.java diff --git a/src/GridSolver/GSMenuController.java b/src/GSMenuController.java similarity index 100% rename from src/GridSolver/GSMenuController.java rename to src/GSMenuController.java diff --git a/src/GridSolver/GSPlay.java b/src/GSPlay.java similarity index 100% rename from src/GridSolver/GSPlay.java rename to src/GSPlay.java diff --git a/src/GridSolver/GSPlayController.java b/src/GSPlayController.java similarity index 100% rename from src/GridSolver/GSPlayController.java rename to src/GSPlayController.java diff --git a/src/GridSolver/GSSolver.java b/src/GSSolver.java similarity index 100% rename from src/GridSolver/GSSolver.java rename to src/GSSolver.java diff --git a/src/GridSolver/GSTest.java b/src/GSTest.java similarity index 100% rename from src/GridSolver/GSTest.java rename to src/GSTest.java diff --git a/src/GridSolver/GSWin.java b/src/GSWin.java similarity index 100% rename from src/GridSolver/GSWin.java rename to src/GSWin.java diff --git a/src/GridMaker/Main.java b/src/GridMaker.java similarity index 51% rename from src/GridMaker/Main.java rename to src/GridMaker.java index cf5d61f..f28266c 100644 --- a/src/GridMaker/Main.java +++ b/src/GridMaker.java @@ -1,6 +1,6 @@ -public class Main{ +public class GridMaker{ public static void main(String[] args) { Window fenetre = new Window(); // Création d'une fenêtre - HomeView menu = new HomeView(fenetre); // Création du menu sur la fenêtre + GMHomeView menu = new GMHomeView(fenetre); // Création du menu sur la fenêtre } } \ No newline at end of file diff --git a/src/GridMaker/Button.java b/src/GridMaker/Button.java deleted file mode 100644 index 88ba711..0000000 --- a/src/GridMaker/Button.java +++ /dev/null @@ -1,72 +0,0 @@ -import javax.swing.*; -import java.awt.*; - -/** - * Class containing custom settings for JButtons. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ - -public class Button extends JButton { - /** - * Constructor - * @param text The text of the button - */ - public Button (String text) { - super(text); - setFont(new Font("Arial", Font.BOLD, 15)); - setBackground(new Color(96, 175, 255)); - } - - /** - * Constructor - * @param text The text of the button - * @param color The background color of the button - */ - public Button (String text,Color color) { - super(text); - setFont(new Font("Arial", Font.BOLD, 15)); - setBackground(color); - } - - /** - * Constructor - * @param text The text of the button - * @param dimension The dimension of the button - */ - public Button(String text, Dimension dimension) { - super(text); - setPreferredSize(dimension); - setFont(new Font("Arial", Font.BOLD, 20)); - setBackground(new Color(96, 175, 255)); - } - - /** - * Constructor - * @param text The text of the button - * @param dimension The dimension of the button - * @param font The font of the text in the button - */ - public Button(String text, Dimension dimension, Font font) { - super(text); - setPreferredSize(dimension); - setFont(font); - setBackground(new Color(96, 175, 255)); - } - - /** - * Constructor - * @param text The text of the button - * @param dimension The dimension of the button - * @param font The font of the text in the button - * @param color The background color of the button - */ - public Button(String text, Dimension dimension, Font font, Color color) { - super(text); - setPreferredSize(dimension); - setFont(font); - setBackground(color); - } - -} \ No newline at end of file diff --git a/src/GridMaker/GridMakerCheckerListener.java b/src/GridMaker/GridMakerCheckerListener.java deleted file mode 100644 index f81fa2f..0000000 --- a/src/GridMaker/GridMakerCheckerListener.java +++ /dev/null @@ -1,28 +0,0 @@ -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -/** - * La classe GridMakerCheckerListener est utilisée pour gérer les événements liés à la vérification de la grille. - */ -public class GridMakerCheckerListener implements ActionListener { - - private GridMakerChecker gridMakerChecker; - - /** - * Constructeur de GridMakerCheckerListener. - * @param gridMakerChecker L'instance de GridMakerChecker à utiliser. - */ - public GridMakerCheckerListener(GridMakerChecker gridMakerChecker) { - this.gridMakerChecker = gridMakerChecker; - } - - /** - * Méthode invoquée lorsqu'un bouton est cliqué. - * Lance la vérification de la grille. - * @param e L'événement d'action - */ - @Override - public void actionPerformed(ActionEvent e) { - gridMakerChecker.checkGrid(); - } -} diff --git a/src/GridSolver/Main.java b/src/GridSolver.java similarity index 51% rename from src/GridSolver/Main.java rename to src/GridSolver.java index cf5d61f..e4935ad 100644 --- a/src/GridSolver/Main.java +++ b/src/GridSolver.java @@ -1,6 +1,6 @@ -public class Main{ +public class GridSolver{ public static void main(String[] args) { Window fenetre = new Window(); // Création d'une fenêtre - HomeView menu = new HomeView(fenetre); // Création du menu sur la fenêtre + GSHomeView menu = new GSHomeView(fenetre); // Création du menu sur la fenêtre } } \ No newline at end of file diff --git a/src/GridSolver/DialogManager.java b/src/GridSolver/DialogManager.java deleted file mode 100644 index 567a6d6..0000000 --- a/src/GridSolver/DialogManager.java +++ /dev/null @@ -1,10 +0,0 @@ - -/** - * Interface containing definition to showDialog box. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ -public interface DialogManager { - void showDialog(); -} \ No newline at end of file diff --git a/src/GridSolver/MusicButton.java b/src/GridSolver/MusicButton.java deleted file mode 100644 index a383176..0000000 --- a/src/GridSolver/MusicButton.java +++ /dev/null @@ -1,47 +0,0 @@ -import javax.swing.*; - -/** - * It provides a button that toggles between playing and stopping music when clicked. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ - public class MusicButton extends JButton { - private static MusicPlayer currentMusicPlayer; - private ImageIcon iconOn; - private ImageIcon iconOff; - private MusicPlayer musicPlayer; - - /** - * Constructs a MusicButton. - * @param onIconPath The file path for the icon when music is on. - * @param offIconPath The file path for the icon when music is off. - * @param musicFilePath The file path for the music file to be played. - */ - public MusicButton(String onIconPath, String offIconPath, String musicFilePath) { - - this.iconOn = new ImageIcon(onIconPath); - this.iconOff = new ImageIcon(offIconPath); - setIcon(this.iconOff); - - // Vérifie s'il y a déjà une musique en cours de lecture et l'arrête si nécessaire - if (currentMusicPlayer != null && currentMusicPlayer.isPlaying()) { - currentMusicPlayer.stop(); - currentMusicPlayer = null; - } - - this.musicPlayer = new MusicPlayer(musicFilePath); - - addActionListener(e -> { - if (currentMusicPlayer != null && currentMusicPlayer.isPlaying()) { - currentMusicPlayer.stop(); - currentMusicPlayer = null; - setIcon(this.iconOff); - } else { - this.musicPlayer.play(); - setIcon(this.iconOn); - currentMusicPlayer = this.musicPlayer; - } - }); - } -} diff --git a/src/GridSolver/MusicPlayer.java b/src/GridSolver/MusicPlayer.java deleted file mode 100644 index 0a451e8..0000000 --- a/src/GridSolver/MusicPlayer.java +++ /dev/null @@ -1,57 +0,0 @@ -import java.io.File; -import javax.sound.sampled.*; - -/** - * Class containign a simple music player that allows playing and stopping music. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ - -public class MusicPlayer { - private Clip clip; - private boolean isPlaying; - - /** - * Constructs a MusicPlayer with the specified file path. - * @param filePath The path to the music file to be played. - */ - public MusicPlayer(String filePath) { - try { - File file = new File(filePath); - AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file); - this.clip = AudioSystem.getClip(); - this.clip.open(audioInputStream); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * Starts playing the music. - */ - public void play() { - if (this.clip != null && !this.isPlaying) { - this.clip.start(); - this.isPlaying = true; - } - } - - /** - * Stops the music. - */ - public void stop() { - if (this.clip != null && this.isPlaying) { - this.clip.stop(); - this.isPlaying = false; - } - } - - /** - * Checks if the music is currently playing. - * @return true if the music is playing, false otherwise. - */ - public boolean isPlaying() { - return this.isPlaying; - } -} diff --git a/src/GridSolver/RulesDialogManager.java b/src/GridSolver/RulesDialogManager.java deleted file mode 100644 index c903d04..0000000 --- a/src/GridSolver/RulesDialogManager.java +++ /dev/null @@ -1,20 +0,0 @@ -import javax.swing.JOptionPane; - -/** - * RulesDialogManager gère l'affichage de la boîte de dialogue des règles. - * Cette classe implémente DialogManager pour définir la méthode showDialog. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ -public class RulesDialogManager implements DialogManager { - /** - * Affiche la boîte de dialogue des règles du Sudoku. - */ - @Override - public void showDialog() { - RulesSudoku rulesPanel = new RulesSudoku(); // Création du panneau contenant les règles - JOptionPane.showMessageDialog(null, rulesPanel, "Règles du Sudoku", JOptionPane.PLAIN_MESSAGE); // Affichage de la boîte de dialogue - } -} - diff --git a/src/GridSolver/RulesSudoku.java b/src/GridSolver/RulesSudoku.java deleted file mode 100644 index 606dc34..0000000 --- a/src/GridSolver/RulesSudoku.java +++ /dev/null @@ -1,49 +0,0 @@ -import javax.swing.*; -import java.awt.*; - -/** - * RulesSudoku représente le panneau affichant les règles du Sudoku. - * Cette classe étend JPanel et définit le contenu des règles. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ -public class RulesSudoku extends JPanel { - private Dimension FRAME_SIZE = new Dimension(400, 500); // Taille de la fenêtre des règles - private Color BACKGROUND_COLOR = new Color(54, 91, 109); // Couleur d'arrière-plan du panneau - - /** - * Constructeur par défaut de RulesSudoku. - * Initialise le contenu des règles et configure l'apparence du panneau. - */ - public RulesSudoku() { - BorderLayout gestionnaireBorderLayout = new BorderLayout(); - this.setLayout(gestionnaireBorderLayout); - this.setBackground(this.BACKGROUND_COLOR); // Couleur d'arrière-plan du panneau - - JLabel titleLabel = new JLabel("Règles du Sudoku"); - titleLabel.setFont(new Font("Copperplate", Font.BOLD, 40)); // Police du titre - titleLabel.setForeground(Color.WHITE); // Couleur du titre - - JTextArea rulesTextArea = new JTextArea(); - rulesTextArea.setText("Les règles du Sudoku :\n\n" + - "1. Le but du jeu est de remplir la grille avec une série de chiffres de 1 à 9 de telle sorte que chaque ligne, chaque colonne et chaque région de 3x3 contienne tous les chiffres de 1 à 9 sans répétition.\n\n" + - "2. Certains chiffres sont déjà placés dans la grille au départ et ne peuvent pas être modifiés.\n\n" + - "3. Utilisez la logique et le raisonnement pour remplir la grille avec les chiffres manquants.\n\n" + - "4. Le jeu est terminé lorsqu'il n'y a plus de cases vides et que toutes les règles sont respectées."); - rulesTextArea.setEditable(false); - rulesTextArea.setLineWrap(true); - rulesTextArea.setWrapStyleWord(true); - rulesTextArea.setFont(new Font("Arial", Font.PLAIN, 20)); // Police du texte des règles - rulesTextArea.setForeground(Color.WHITE); // Couleur du texte des règles - rulesTextArea.setBackground(this.BACKGROUND_COLOR); // Couleur d'arrière-plan du texte des règles - - JScrollPane scrollPane = new JScrollPane(rulesTextArea); - - this.add(titleLabel, BorderLayout.NORTH); - this.add(scrollPane, BorderLayout.CENTER); - - this.setPreferredSize(this.FRAME_SIZE); // Taille de la fenêtre des règles - } -} - diff --git a/src/GridSolver/Title.java b/src/GridSolver/Title.java deleted file mode 100644 index c953378..0000000 --- a/src/GridSolver/Title.java +++ /dev/null @@ -1,26 +0,0 @@ -import javax.swing.*; -import java.awt.*; - -/** - * Title est une étiquette Swing personnalisée utilisée pour afficher un titre centré avec une police et une couleur spécifiées. - * Cette classe étend JLabel. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ -public class Title extends JLabel { - - /** - * Constructeur de Title. - * Crée une étiquette avec le texte, la police et la couleur spécifiés, et la centre horizontalement. - * @param text Le texte à afficher. - * @param font La police à utiliser pour le texte. - * @param color La couleur du texte. - */ - public Title(String text, Font font, Color color) { - super(text, SwingConstants.CENTER); // Centre le texte horizontalement - setFont(font); // Définit la police du texte - setForeground(color); // Définit la couleur du texte - } -} - diff --git a/src/GridSolver/Window.java b/src/GridSolver/Window.java deleted file mode 100644 index 0cdf564..0000000 --- a/src/GridSolver/Window.java +++ /dev/null @@ -1,71 +0,0 @@ -import javax.swing.*; -import java.awt.*; - -/** - * Window est une classe représentant la fenêtre principale de l'application Sudoku. - * Cette classe étend JFrame et gère l'affichage des différentes pages de l'application. - * @version 1.0 - * @author Moncef STITI - * @author Marco ORFAO - */ -public class Window extends JFrame { - /** - * La taille minimale de la fenêtre. - */ - private static final Dimension MIN_WINDOW_SIZE = new Dimension(850, 700); - /** - * Le titre du programme. - */ - private static final String PROGRAM_TITLE = "Sudoku"; - - /** - * La couleur d'arrière plan par défaut de la fenêtre - */ - private static final Color BACKGROUND_COLOR = new Color(54, 91, 109); - - /** - * Le titre de la page actuelle. - */ - private String PAGE_TITLE = ""; - - /** - * Constructeur de la classe Window. - * Initialise la fenêtre avec le titre du programme, la taille minimale et la couleur de fond. - */ - public Window() { - super(PROGRAM_TITLE); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - this.setMinimumSize(MIN_WINDOW_SIZE); - this.setLocationRelativeTo(null); - getContentPane().setBackground(BACKGROUND_COLOR); - } - - /** - * Obtient le titre de la page actuelle. - * @return Le titre de la page actuelle. - */ - public String getPageTitle() { - return this.PAGE_TITLE; - } - - /** - * Définit le titre de la page actuelle. - * Met à jour le titre de la fenêtre pour inclure le titre de la page et le titre du programme. - * @param title Le titre de la page actuelle. - */ - public void setPageTitle(String title) { - this.PAGE_TITLE = title; - this.setTitle(this.PAGE_TITLE + " - " + Window.PROGRAM_TITLE); - } - - /** - * Supprime tous les composants de la fenêtre. - * Utilisé pour effacer le contenu de la fenêtre. - * @param window La fenêtre à nettoyer. - */ - public static void removeAllComponents(Window window) { - window.getContentPane().removeAll(); // Supprime tous les composants de la fenêtre - window.revalidate(); // Revalide la disposition des composants - window.repaint(); // Redessine la fenêtre - } -} diff --git a/src/GridMaker/MusicButton.java b/src/MusicButton.java similarity index 100% rename from src/GridMaker/MusicButton.java rename to src/MusicButton.java diff --git a/src/GridMaker/MusicPlayer.java b/src/MusicPlayer.java similarity index 100% rename from src/GridMaker/MusicPlayer.java rename to src/MusicPlayer.java diff --git a/src/GridMaker/RulesDialogManager.java b/src/RulesDialogManager.java similarity index 100% rename from src/GridMaker/RulesDialogManager.java rename to src/RulesDialogManager.java diff --git a/src/GridMaker/RulesSudoku.java b/src/RulesSudoku.java similarity index 100% rename from src/GridMaker/RulesSudoku.java rename to src/RulesSudoku.java diff --git a/src/GridMaker/Title.java b/src/Title.java similarity index 100% rename from src/GridMaker/Title.java rename to src/Title.java diff --git a/src/GridMaker/Window.java b/src/Window.java similarity index 100% rename from src/GridMaker/Window.java rename to src/Window.java