Correction de la JAVADOC

This commit is contained in:
2024-12-10 18:23:15 +01:00
parent a5034081b0
commit 86ee892770
22 changed files with 254 additions and 103 deletions

View File

@@ -49,6 +49,13 @@ public class Main {
*/ */
private static boolean isMusicPlayed = false; private static boolean isMusicPlayed = false;
/**
* Constructeur par défaut pour la classe Main.
*/
public Main() {
// Constructeur par défaut
}
/** /**
* Réinitialiser le jeu * Réinitialiser le jeu
*/ */
@@ -80,19 +87,13 @@ public class Main {
// 4. Créer les fenêtres à nouveau comme au début // 4. Créer les fenêtres à nouveau comme au début
ImageIcon icon = new ImageIcon("./ressources/images/Application/Application_Icon.jpg");
gameModeFrame = new JFrame("Choix des séries - Dorfromantik"); gameModeFrame = new JFrame("Choix des séries - Dorfromantik");
gameModeFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE); gameModeFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE);
gameModeFrame.setIconImage(icon.getImage());
gameFrame = new JFrame("Jeu - Dorfromantik"); gameFrame = new JFrame("Jeu - Dorfromantik");
gameFrame.setIconImage(icon.getImage());
gameFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE); gameFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE);
settingsFrame = new JFrame("Paramètres - Dorfromantik"); settingsFrame = new JFrame("Paramètres - Dorfromantik");
settingsFrame.setIconImage(icon.getImage());
settingsFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE); settingsFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE);
howToPlayFrame = new JFrame("Comment jouer ? - Dorfromantik"); howToPlayFrame = new JFrame("Comment jouer ? - Dorfromantik");
howToPlayFrame.setIconImage(icon.getImage());
howToPlayFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE); howToPlayFrame.setMinimumSize(Options.MINIMUM_FRAME_SIZE);
// Re-créer et réinitialiser les panels et les contrôleurs // Re-créer et réinitialiser les panels et les contrôleurs

View File

@@ -15,6 +15,13 @@ import fr.monkhanny.dorfromantik.gui.MainMenu;
*/ */
public class Options { public class Options {
/**
* Constructeur par défaut pour la classe Options.
*/
public Options() {
// Constructeur par défaut
}
/** /**
* Taille de police de base pour les titres du menu principal * Taille de police de base pour les titres du menu principal
*/ */

View File

@@ -12,9 +12,14 @@ import java.awt.*;
* @version 1.0 * @version 1.0
* @author Khalid CHENOUNA * @author Khalid CHENOUNA
**/ **/
public class Button { public class Button {
/**
* Constructeur par défaut pour initialiser la classe utilitaire.
*/
public Button() {
}
/** /**
* Crée un bouton personnalisé avec un texte, une taille de police spécifique et un style prédéfini. * Crée un bouton personnalisé avec un texte, une taille de police spécifique et un style prédéfini.
* *

View File

@@ -16,17 +16,13 @@ import java.util.*;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
/** /**
* Représente le plateau de jeu. * Représente le plateau de jeu.
* Représente le plateau de jeu, gérant les tuiles, les positions disponibles, * Gère les tuiles, les positions disponibles, le zoom, les déplacements, et l'interaction avec l'utilisateur.
* le zoom, les déplacements, et l'interaction avec l'utilisateur.
* *
* @version 1.0 * @version 1.0
* @author Moncef STITI, Lenny FOULOU, Khalid CHENOUNA * @author Moncef STITI, Lenny FOULOU, Khalid CHENOUNA
*/ */
public class Board extends JPanel{ public class Board extends JPanel{
/** /**
@@ -115,7 +111,12 @@ public class Board extends JPanel{
private ScoreDisplay scoreDisplay; private ScoreDisplay scoreDisplay;
// Constructeur avec seed /**
* Constructeur pour initialiser le plateau de jeu avec la fenêtre principale et la graine aléatoire.
*
* @param gameFrame la fenêtre du jeu
* @param seed la graine aléatoire pour initialiser le générateur de nombres aléatoires
*/
public Board(JFrame gameFrame, long seed) { public Board(JFrame gameFrame, long seed) {
this.gameFrame = gameFrame; this.gameFrame = gameFrame;
this.tiles = new ArrayList<>(); this.tiles = new ArrayList<>();
@@ -161,10 +162,19 @@ public class Board extends JPanel{
gameFrame.addKeyListener(new CustomKeyAdapter(this)); gameFrame.addKeyListener(new CustomKeyAdapter(this));
} }
/**
* Récupère le menu des contrôles du jeu.
* @return le menu des contrôles du jeu
*/
public GameControlsMenu getControlsMenu() { public GameControlsMenu getControlsMenu() {
return controlsMenu; return controlsMenu;
} }
/**
* Gère les événements de déplacement de la souris.
* @param e l'événement MouseEvent déclenché par le déplacement de la souris
*/
public void handleMouseMove(java.awt.event.MouseEvent e) { public void handleMouseMove(java.awt.event.MouseEvent e) {
if (Options.isPaused) { if (Options.isPaused) {
return; return;
@@ -193,6 +203,9 @@ public class Board extends JPanel{
repaint(); // Redessiner sans la tuile transparente repaint(); // Redessiner sans la tuile transparente
} }
/**
* Initialise la prochaine tuile à placer sur le plateau.
*/
private void initializeNextTile() { private void initializeNextTile() {
int offsetX = 50; // Décalage pour la position en haut à gauche int offsetX = 50; // Décalage pour la position en haut à gauche
int offsetY = 50; // Décalage pour la position en haut à gauche int offsetY = 50; // Décalage pour la position en haut à gauche
@@ -200,8 +213,15 @@ public class Board extends JPanel{
} }
/**
* Récupère la prochaine tuile à placer sur le plateau.
* @return la prochaine tuile à placer
*/
public Tile getNextTile() { return nextTile; } public Tile getNextTile() { return nextTile; }
/**
* Gère les événements de touche de clavier
*/
public void handleSpaceKeyPress() { public void handleSpaceKeyPress() {
if (Options.isPaused) { if (Options.isPaused) {
return; return;
@@ -251,11 +271,11 @@ public class Board extends JPanel{
/** /**
* Gère les événements de clic de souris pour placer une tuile à la position disponible * Gère les événements de clic de souris pour placer une tuile à la position disponible
* la plus proche, si le jeu n'est pas en pause. * la plus proche, si le jeu n'est pas en pause.
* *
* @param e l'événement MouseEvent déclenché par un clic de souris * @param e l'événement MouseEvent déclenché par un clic de souris
*/ */
public void handleMouseClick(java.awt.event.MouseEvent e) { public void handleMouseClick(java.awt.event.MouseEvent e) {
if (Options.isPaused) { if (Options.isPaused) {
return; return;
@@ -284,9 +304,9 @@ public class Board extends JPanel{
/** /**
* Initialise la tuile centrale au centre de la fenêtre de jeu et calcule * Initialise la tuile centrale au centre de la fenêtre de jeu et calcule
* les positions disponibles autour pour les placements futurs. * les positions disponibles autour pour les placements futurs.
*/ */
private void initializeCentralTile() { private void initializeCentralTile() {
int centerX = gameFrame.getWidth() / 2; int centerX = gameFrame.getWidth() / 2;
int centerY = gameFrame.getHeight() / 2; int centerY = gameFrame.getHeight() / 2;
@@ -301,11 +321,11 @@ public class Board extends JPanel{
} }
/** /**
* Ajoute une tuile au jeu, met à jour le gestionnaire de score * Ajoute une tuile au jeu, met à jour le gestionnaire de score
* et rafraîchit l'affichage du score. * et rafraîchit l'affichage du score.
* *
* @param tile l'objet Tile à ajouter au jeu * @param tile l'objet Tile à ajouter au jeu
*/ */
public void addTile(Tile tile) { public void addTile(Tile tile) {
tiles.add(tile); tiles.add(tile);
scoreManager.addTile(tile); scoreManager.addTile(tile);
@@ -313,13 +333,13 @@ public class Board extends JPanel{
scoreDisplay.setScore(currentScore); scoreDisplay.setScore(currentScore);
} }
/** /**
* Récupère la tuile située aux coordonnées spécifiées, si elle existe. * Récupère la tuile située aux coordonnées spécifiées, si elle existe.
* *
* @param x la coordonnée x à vérifier * @param x la coordonnée x à vérifier
* @param y la coordonnée y à vérifier * @param y la coordonnée y à vérifier
* @return l'objet Tile situé aux coordonnées spécifiées, ou {@code null} si aucune tuile n'est trouvée * @return l'objet Tile situé aux coordonnées spécifiées, ou {@code null} si aucune tuile n'est trouvée
*/ */
public Tile getTileAt(int x, int y) { public Tile getTileAt(int x, int y) {
for (Tile tile : tiles) { for (Tile tile : tiles) {
if (Math.abs(tile.getXCoord() - x) < 5 && Math.abs(tile.getYCoord() - y) < 5) { if (Math.abs(tile.getXCoord() - x) < 5 && Math.abs(tile.getYCoord() - y) < 5) {
@@ -329,8 +349,16 @@ public class Board extends JPanel{
return null; return null;
} }
/**
* Récupère le random
* @return random
*/
public Random getRandom() { return random; } public Random getRandom() { return random; }
/**
* Récupère la game
* @return game
*/
public Game getGame() { return game; } public Game getGame() { return game; }
/** /**
@@ -340,28 +368,28 @@ public class Board extends JPanel{
* @param tile La tuile pour laquelle on calcule les positions disponibles * @param tile La tuile pour laquelle on calcule les positions disponibles
*/ */
private void calculateAvailablePositions(Tile tile) { private void calculateAvailablePositions(Tile tile) {
int tileX = tile.getXCoord(); int tileX = tile.getXCoord();
int tileY = tile.getYCoord(); int tileY = tile.getYCoord();
int radius = (int) (tile.getRadius() * 1.72); // Utiliser un rayon uniforme pour toutes les directions int radius = (int) (tile.getRadius() * 1.72); // Utiliser un rayon uniforme pour toutes les directions
// Définir les directions possibles autour de la tuile (6 directions pour une tuile hexagonale) // Définir les directions possibles autour de la tuile (6 directions pour une tuile hexagonale)
Point[] directions = { Point[] directions = {
new Point(0, -radius), // Nord new Point(0, -radius), // Nord
new Point((int)(radius * Math.sqrt(3) / 2), -radius / 2), // Nord-Est (ajuster horizontalement) new Point((int)(radius * Math.sqrt(3) / 2), -radius / 2), // Nord-Est (ajuster horizontalement)
new Point((int)(radius * Math.sqrt(3) / 2), radius / 2), // Sud-Est (ajuster horizontalement) new Point((int)(radius * Math.sqrt(3) / 2), radius / 2), // Sud-Est (ajuster horizontalement)
new Point(0, radius), // Sud new Point(0, radius), // Sud
new Point(-(int)(radius * Math.sqrt(3) / 2), radius / 2), // Sud-Ouest (ajuster horizontalement) new Point(-(int)(radius * Math.sqrt(3) / 2), radius / 2), // Sud-Ouest (ajuster horizontalement)
new Point(-(int)(radius * Math.sqrt(3) / 2), -radius / 2) // Nord-Ouest (ajuster horizontalement) new Point(-(int)(radius * Math.sqrt(3) / 2), -radius / 2) // Nord-Ouest (ajuster horizontalement)
}; };
// Calculer les positions disponibles autour de la tuile // Calculer les positions disponibles autour de la tuile
for (Point direction : directions) { for (Point direction : directions) {
Point newPoint = new Point(tileX + direction.x, tileY + direction.y); Point newPoint = new Point(tileX + direction.x, tileY + direction.y);
if (!isTileAtPosition(newPoint)) { if (!isTileAtPosition(newPoint)) {
availablePositions.add(newPoint); // Ajouter la position si une tuile n'est pas déjà là availablePositions.add(newPoint); // Ajouter la position si une tuile n'est pas déjà là
}
} }
} }
}
/** /**
@@ -429,12 +457,12 @@ public class Board extends JPanel{
} }
} }
/** /**
* Recentre automatiquement la vue sur une tuile nouvellement placée si l'option * Recentre automatiquement la vue sur une tuile nouvellement placée si l'option
* de mise au point automatique (AUTO_FOCUS) est activée. * de mise au point automatique (AUTO_FOCUS) est activée.
* *
* @param newlyPlacedTile la tuile récemment placée, utilisée comme référence pour recentrer la vue * @param newlyPlacedTile la tuile récemment placée, utilisée comme référence pour recentrer la vue
*/ */
public void autoReFocus(Tile newlyPlacedTile) { public void autoReFocus(Tile newlyPlacedTile) {
if (Options.AUTO_FOCUS) { if (Options.AUTO_FOCUS) {
// Récupérer les coordonnées de la nouvelle tuile // Récupérer les coordonnées de la nouvelle tuile
@@ -453,28 +481,63 @@ public class Board extends JPanel{
} }
} }
/**
* Récupère le facteur de zoom actuel.
* @return facteur de zoom actuel.
*/
public double getZoomFactor() { return zoomFactor;} public double getZoomFactor() { return zoomFactor;}
/**
* Définit le facteur de zoom actuel.
* @param zoomFactor facteur de zoom actuel.
*/
public void setZoomFactor(double zoomFactor) { this.zoomFactor = zoomFactor; } public void setZoomFactor(double zoomFactor) { this.zoomFactor = zoomFactor; }
/**
* Récupère l'offset horizontal actuel.
* @return offsetX
*/
public int getOffsetX() { return offsetX; } public int getOffsetX() { return offsetX; }
/**
* Définit l'offset horizontal actuel.
* @param offsetX La valeur de l'offset horizontal à définir.
*/
public void setOffsetX(int offsetX) { this.offsetX = offsetX; } public void setOffsetX(int offsetX) { this.offsetX = offsetX; }
/**
* Récupère l'offset vertical actuel.
* @return offsetY
*/
public int getOffsetY() { return offsetY; } public int getOffsetY() { return offsetY; }
/**
* Définit l'offset vertical actuel.
* @param offsetY La valeur de l'offset vertical à définir.
*/
public void setOffsetY(int offsetY) { this.offsetY = offsetY; } public void setOffsetY(int offsetY) { this.offsetY = offsetY; }
/**
* Permet de zoomer sur le plateau de jeu.
*/
public void zoomIn() { public void zoomIn() {
zoomFactor *= 1.1; // Augmenter le facteur de zoom zoomFactor *= 1.1; // Augmenter le facteur de zoom
repaint(); repaint();
} }
/**
* Permet de dézoomer sur le plateau de jeu.
*/
public void zoomOut() { public void zoomOut() {
zoomFactor /= 1.1; // Diminuer le facteur de zoom zoomFactor /= 1.1; // Diminuer le facteur de zoom
repaint(); repaint();
} }
/**
* Permet de déplacer le plateau de jeu.
* @param dx Position x
* @param dy Position y
*/
public void moveBoard(int dx, int dy) { public void moveBoard(int dx, int dy) {
offsetX += dx; offsetX += dx;
offsetY += dy; offsetY += dy;

View File

@@ -9,9 +9,8 @@ import javax.swing.*;
/** /**
* Listener pour gérer la fermeture d'une fenêtre secondaire et réafficher le menu principal. * Listener pour gérer la fermeture d'une fenêtre secondaire et réafficher le menu principal.
* Lorsque la fenêtre surveillée est fermée, ce listener rend visible le menu principal * Lorsque la fenêtre surveillée est fermée, ce listener rend visible le menu principal et cache la fenêtre en cours.
* *
* et cache la fenêtre en cours.
* @version 1.0 * @version 1.0
* @author Khalid CHENOUNA * @author Khalid CHENOUNA
*/ */

View File

@@ -16,6 +16,13 @@ import fr.monkhanny.dorfromantik.Options;
*/ */
public class EscapeMenuCloseListener extends WindowAdapter { public class EscapeMenuCloseListener extends WindowAdapter {
/**
* Constructeur par défaut pour initialiser le listener.
*/
public EscapeMenuCloseListener() {
// Constructeur par défaut
}
/** /**
* Méthode appelée lorsque la fenêtre du menu d'échappement est en cours de fermeture. * Méthode appelée lorsque la fenêtre du menu d'échappement est en cours de fermeture.
* Met à jour l'état d'**Options.isPaused** pour indiquer que le jeu n'est plus en pause. * Met à jour l'état d'**Options.isPaused** pour indiquer que le jeu n'est plus en pause.

View File

@@ -4,6 +4,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel; import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel;
/** /**
* Listener pour gérer les clics sur le bouton "Suivant" dans le panneau de sélection du mode de jeu. * Listener pour gérer les clics sur le bouton "Suivant" dans le panneau de sélection du mode de jeu.
* Cette classe permet de naviguer vers la page suivante des séries disponibles dans le panneau. * Cette classe permet de naviguer vers la page suivante des séries disponibles dans le panneau.
@@ -13,7 +14,7 @@ import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel;
*/ */
public class GameModeNextButtonActionListener implements ActionListener { public class GameModeNextButtonActionListener implements ActionListener {
/** /**
* Le panneau de sélection du mode de jeu. * Le panneau de sélection du mode de jeu.
*/ */
private GameModeSelectionPanel panel; private GameModeSelectionPanel panel;

View File

@@ -3,19 +3,23 @@ package fr.monkhanny.dorfromantik.listeners;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
/** /**
* @version 1.0
* @author Khalid CHENOUNA
* Listener pour gérer la fermeture du jeu lorsque le bouton "Quitter" est cliqué. * Listener pour gérer la fermeture du jeu lorsque le bouton "Quitter" est cliqué.
* Cette classe termine l'exécution de l'application. * Cette classe termine l'exécution de l'application.
*
* @version 1.0
* @author Khalid CHENOUNA
*/ */
public class GameQuitButtonListener implements ActionListener { public class GameQuitButtonListener implements ActionListener {
/** /**
* Constructeur par défaut pour initialiser le listener. * Constructeur par défaut pour initialiser le listener.
*/ */
public GameQuitButtonListener() { public GameQuitButtonListener() {
} }
/** /**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Quitter". * Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Quitter".
* Cette implémentation termine immédiatement l'exécution de l'application. * Cette implémentation termine immédiatement l'exécution de l'application.

View File

@@ -5,17 +5,20 @@ import java.awt.event.ActionListener;
import fr.monkhanny.dorfromantik.Options; import fr.monkhanny.dorfromantik.Options;
import fr.monkhanny.dorfromantik.game.EscapeMenu; import fr.monkhanny.dorfromantik.game.EscapeMenu;
/** /**
* @version 1.0
* @author Khalid CHENOUNA
* Listener pour gérer la reprise du jeu lorsque le bouton "Reprendre" est cliqué dans le menu d'échappement. * Listener pour gérer la reprise du jeu lorsque le bouton "Reprendre" est cliqué dans le menu d'échappement.
* Cette classe permet de masquer le menu de pause et de remettre le jeu dans un état actif. * Cette classe permet de masquer le menu de pause et de remettre le jeu dans un état actif.
*
* @version 1.0
* @author Khalid CHENOUNA
*/ */
public class GameResumeButtonListener implements ActionListener { public class GameResumeButtonListener implements ActionListener {
/** /**
* Le menu d'échappement (menu pause) qui doit être masqué lorsque le jeu reprend. * Le menu d'échappement (menu pause) qui doit être masqué lorsque le jeu reprend.
*/ */
private EscapeMenu escapeMenu; private EscapeMenu escapeMenu;
/** /**
* Constructeur pour initialiser le listener avec le menu d'échappement. * Constructeur pour initialiser le listener avec le menu d'échappement.
* *
@@ -24,6 +27,7 @@ public class GameResumeButtonListener implements ActionListener {
public GameResumeButtonListener(EscapeMenu escapeMenu) { public GameResumeButtonListener(EscapeMenu escapeMenu) {
this.escapeMenu = escapeMenu; this.escapeMenu = escapeMenu;
} }
/** /**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Reprendre". * Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton "Reprendre".
* Elle masque le menu d'échappement et remet le jeu en état actif en désactivant le mode pause. * Elle masque le menu d'échappement et remet le jeu en état actif en désactivant le mode pause.

View File

@@ -7,38 +7,41 @@ import fr.monkhanny.dorfromantik.gui.SettingsPanel;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.JFrame; import javax.swing.JFrame;
/** /**
* Listener pour gérer l'ouverture de la fenêtre des paramètres lorsqu'un bouton est cliqué.
* Ce listener cache le menu d'échappement (escape menu), affiche une nouvelle fenêtre avec les paramètres, et configure cette fenêtre pour revenir à la fenêtre principale du jeu lorsqu'elle est fermée.
*
* @version 1.0 * @version 1.0
* @author Khalid CHENOUNA * @author Khalid CHENOUNA
* Listener pour gérer l'ouverture de la fenêtre des paramètres lorsqu'un bouton est cliqué.
* Ce listener cache le menu d'échappement (escape menu), affiche une nouvelle fenêtre avec
* les paramètres, et configure cette fenêtre pour revenir à la fenêtre principale du jeu
* lorsqu'elle est fermée.
*/ */
public class GameSettingsButtonListener implements ActionListener { public class GameSettingsButtonListener implements ActionListener {
/** /**
* La fenêtre principale du jeu. * La fenêtre principale du jeu.
*/ */
private JFrame gameFrame; private JFrame gameFrame;
/** /**
* La fenêtre dédiée aux paramètres. * La fenêtre dédiée aux paramètres.
*/ */
private JFrame settingsFrame; private JFrame settingsFrame;
/** /**
* Le panneau contenant les options de configuration. * Le panneau contenant les options de configuration.
*/ */
private SettingsPanel settingsPanel; private SettingsPanel settingsPanel;
/**
/**
* Le menu d'échappement (menu pause) qui doit être caché lorsque les paramètres sont affichés. * Le menu d'échappement (menu pause) qui doit être caché lorsque les paramètres sont affichés.
*/ */
private EscapeMenu escapeMenu; private EscapeMenu escapeMenu;
/**
/**
* Constructeur pour initialiser le listener avec la fenêtre principale et le menu d'échappement. * Constructeur pour initialiser le listener avec la fenêtre principale et le menu d'échappement.
* *
* @param gameFrame la fenêtre principale du jeu. * @param gameFrame la fenêtre principale du jeu.
* @param escapeMenu le menu d'échappement (menu pause) à cacher lorsque la fenêtre des paramètres s'affiche. * @param escapeMenu le menu d'échappement (menu pause) à cacher lorsque la fenêtre des paramètres s'affiche.
*/ */
public GameSettingsButtonListener(JFrame gameFrame, EscapeMenu escapeMenu) { public GameSettingsButtonListener(JFrame gameFrame, EscapeMenu escapeMenu) {
this.gameFrame = gameFrame; this.gameFrame = gameFrame;
this.escapeMenu = escapeMenu; this.escapeMenu = escapeMenu;
@@ -49,6 +52,7 @@ public class GameSettingsButtonListener implements ActionListener {
// Ajouter le WindowListener pour réafficher la gameFrame lors de la fermeture de settingsFrame // Ajouter le WindowListener pour réafficher la gameFrame lors de la fermeture de settingsFrame
this.settingsFrame.addWindowListener(new GameSettingsWindowListener(gameFrame)); this.settingsFrame.addWindowListener(new GameSettingsWindowListener(gameFrame));
} }
/** /**
* Méthode appelée lorsqu'une action est déclenchée, comme un clic sur un bouton. * Méthode appelée lorsqu'une action est déclenchée, comme un clic sur un bouton.
* Elle ouvre la fenêtre des paramètres, cache la fenêtre du jeu et configure * Elle ouvre la fenêtre des paramètres, cache la fenêtre du jeu et configure

View File

@@ -4,26 +4,28 @@ import javax.swing.JFrame;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import java.awt.event.WindowListener; import java.awt.event.WindowListener;
public class GameSettingsWindowListener implements WindowListener {
private JFrame gameFrame;
/** /**
* Listener pour gérer les événements liés à la fenêtre des paramètres du jeu.
* Ce listener réaffiche la fenêtre principale du jeu (gameFrame) lorsque la fenêtre des paramètres est en train de se fermer.
*
* @version 1.0 * @version 1.0
* @author Khalid CHENOUNA * @author Khalid CHENOUNA
* Listener pour gérer les événements liés à la fenêtre des paramètres du jeu.
* Ce listener réaffiche la fenêtre principale du jeu (gameFrame) lorsque la
* fenêtre des paramètres est en train de se fermer.
*/ */
public GameSettingsWindowListener(JFrame gameFrame) { public class GameSettingsWindowListener implements WindowListener {
/** /**
* La fenêtre principale du jeu à réafficher. * La fenêtre du jeu.
*/ */
this.gameFrame = gameFrame; private JFrame gameFrame;
/**
/**
* Constructeur pour initialiser le listener avec la fenêtre principale du jeu. * Constructeur pour initialiser le listener avec la fenêtre principale du jeu.
* *
* @param gameFrame la fenêtre principale du jeu. * @param gameFrame la fenêtre principale du jeu.
*/ */
public GameSettingsWindowListener(JFrame gameFrame) {
this.gameFrame = gameFrame;
} }
/** /**
* Méthode appelée lorsque la fenêtre est ouverte. * Méthode appelée lorsque la fenêtre est ouverte.
* Aucun comportement n'est implémenté pour cet événement. * Aucun comportement n'est implémenté pour cet événement.
@@ -34,6 +36,7 @@ public class GameSettingsWindowListener implements WindowListener {
public void windowOpened(WindowEvent e) { public void windowOpened(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/** /**
* Méthode appelée lorsque la fenêtre est en train de se fermer. * Méthode appelée lorsque la fenêtre est en train de se fermer.
* Cette implémentation réaffiche la fenêtre principale du jeu. * Cette implémentation réaffiche la fenêtre principale du jeu.
@@ -45,6 +48,7 @@ public class GameSettingsWindowListener implements WindowListener {
// Réafficher la gameFrame // Réafficher la gameFrame
gameFrame.setVisible(true); gameFrame.setVisible(true);
} }
/** /**
* Méthode appelée lorsque la fenêtre a été fermée. * Méthode appelée lorsque la fenêtre a été fermée.
* Aucun comportement n'est implémenté pour cet événement. * Aucun comportement n'est implémenté pour cet événement.
@@ -55,6 +59,7 @@ public class GameSettingsWindowListener implements WindowListener {
public void windowClosed(WindowEvent e) { public void windowClosed(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/** /**
* Méthode appelée lorsque la fenêtre est réduite en icône. * Méthode appelée lorsque la fenêtre est réduite en icône.
* Aucun comportement n'est implémenté pour cet événement. * Aucun comportement n'est implémenté pour cet événement.
@@ -65,6 +70,7 @@ public class GameSettingsWindowListener implements WindowListener {
public void windowIconified(WindowEvent e) { public void windowIconified(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/** /**
* Méthode appelée lorsque la fenêtre est restaurée après avoir été réduite. * Méthode appelée lorsque la fenêtre est restaurée après avoir été réduite.
* Aucun comportement n'est implémenté pour cet événement. * Aucun comportement n'est implémenté pour cet événement.
@@ -75,6 +81,7 @@ public class GameSettingsWindowListener implements WindowListener {
public void windowDeiconified(WindowEvent e) { public void windowDeiconified(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/** /**
* Méthode appelée lorsque la fenêtre devient active. * Méthode appelée lorsque la fenêtre devient active.
* Aucun comportement n'est implémenté pour cet événement. * Aucun comportement n'est implémenté pour cet événement.
@@ -85,6 +92,7 @@ public class GameSettingsWindowListener implements WindowListener {
public void windowActivated(WindowEvent e) { public void windowActivated(WindowEvent e) {
// Rien à faire ici // Rien à faire ici
} }
/** /**
* Méthode appelée lorsque la fenêtre devient inactive. * Méthode appelée lorsque la fenêtre devient inactive.
* Aucun comportement n'est implémenté pour cet événement. * Aucun comportement n'est implémenté pour cet événement.

View File

@@ -2,11 +2,12 @@ package fr.monkhanny.dorfromantik.listeners;
import fr.monkhanny.dorfromantik.game.Board; import fr.monkhanny.dorfromantik.game.Board;
/** /**
* Listener pour gérer l'appui sur la touche Espace dans le jeu.
* Lorsqu'un événement d'appui sur la touche Espace est détecté, le plateau de jeu est recentré grâce à une méthode spécifique.
*
*
* @version 1.0 * @version 1.0
* @author Lenny FOULOU * @author Lenny FOULOU
* Listener pour gérer l'appui sur la touche Espace dans le jeu.
* Lorsqu'un événement d'appui sur la touche Espace est détecté,
* le plateau de jeu est recentré grâce à une méthode spécifique.
*/ */
public class GameSpaceKeyListener extends java.awt.event.KeyAdapter { public class GameSpaceKeyListener extends java.awt.event.KeyAdapter {
/** /**

View File

@@ -5,10 +5,11 @@ import fr.monkhanny.dorfromantik.game.Board;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
/** /**
* @version 1.0
* @author Lenny FOULOU
* Listener pour gérer le zoom dans le jeu à l'aide de la molette de la souris. * Listener pour gérer le zoom dans le jeu à l'aide de la molette de la souris.
* Le zoom s'effectue uniquement lorsque la touche Ctrl est enfoncée. * Le zoom s'effectue uniquement lorsque la touche Ctrl est enfoncée.
*
* @version 1.0
* @author Lenny FOULOU
*/ */
public class GameZoomListener extends MouseAdapter { public class GameZoomListener extends MouseAdapter {
/** /**

View File

@@ -7,17 +7,19 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import javax.swing.JSlider; import javax.swing.JSlider;
/** /**
* Classe MusicVolumeChangeListener, un écouteur d'événements.
* Gère les changements de volume de la musique via un composant JSlider.
*
* @version 1.0 * @version 1.0
* @author Moncef STITI * @author Moncef STITI
* Classe MusicVolumeChangeListener, un écouteur d'événements pour gérer les changements
* de volume de la musique via un composant JSlider.
*/ */
public class MusicVolumeChangeListener implements ChangeListener { public class MusicVolumeChangeListener implements ChangeListener {
/** /**
* Le slider associé permettant de contrôler le volume de la musique. * Le slider associé permettant de contrôler le volume de la musique.
*/ */
private JSlider slider; private JSlider slider;
/**
/**
* Constructeur de MusicVolumeChangeListener. * Constructeur de MusicVolumeChangeListener.
* *
* @param slider le composant JSlider utilisé pour ajuster le volume * @param slider le composant JSlider utilisé pour ajuster le volume
@@ -25,6 +27,7 @@ public class MusicVolumeChangeListener implements ChangeListener {
public MusicVolumeChangeListener(JSlider slider) { public MusicVolumeChangeListener(JSlider slider) {
this.slider = slider; this.slider = slider;
} }
/** /**
* Gère les changements d'état du slider (JSlider). * Gère les changements d'état du slider (JSlider).
* Met à jour le volume de la musique en fonction de la position actuelle du slider. * Met à jour le volume de la musique en fonction de la position actuelle du slider.
@@ -35,7 +38,7 @@ public class MusicVolumeChangeListener implements ChangeListener {
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
// Récupérer la valeur du slider spécifique // Récupérer la valeur du slider spécifique
Options.MUSIC_VOLUME = slider.getValue(); Options.MUSIC_VOLUME = slider.getValue();
// Applique le nouveau volume au lecteur de musique // Applique le nouveau volume au lecteur de musique
MusicPlayer.setVolume(MusicPlayer.getMusicClip(), Options.MUSIC_VOLUME); MusicPlayer.setVolume(MusicPlayer.getMusicClip(), Options.MUSIC_VOLUME);
} }
} }

View File

@@ -6,19 +6,22 @@ import fr.monkhanny.dorfromantik.utils.MusicPlayer;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
/** /**
* @version 1.0
* @author Moncef STITI
* Classe MuteCheckBoxListener, un écouteur d'événements pour gérer les cases à cocher * Classe MuteCheckBoxListener, un écouteur d'événements pour gérer les cases à cocher
* permettant d'activer ou de désactiver la musique et les effets sonores (SFX). * permettant d'activer ou de désactiver la musique et les effets sonores (SFX).
*
* @version 1.0
* @author Moncef STITI
*/ */
public class MuteCheckBoxListener implements ActionListener { public class MuteCheckBoxListener implements ActionListener {
/** /**
* Libellé indiquant le type d'option contrôlée par cet écouteur. * Libellé indiquant le type d'option contrôlée par cet écouteur.
* Par exemple, "Musique" pour la musique de fond ou "SFX" pour les effets sonores. * Par exemple, "Musique" pour la musique de fond ou "SFX" pour les effets sonores.
*/ */
private String label; private String label;
/**
/**
* Constructeur de MuteCheckBoxListener. * Constructeur de MuteCheckBoxListener.
* *
* @param label un libellé pour indiquer le type d'option (par exemple "Musique" ou "SFX") * @param label un libellé pour indiquer le type d'option (par exemple "Musique" ou "SFX")
@@ -26,6 +29,7 @@ public class MuteCheckBoxListener implements ActionListener {
public MuteCheckBoxListener(String label) { public MuteCheckBoxListener(String label) {
this.label = label; this.label = label;
} }
/** /**
* Gère les événements de clic sur une case à cocher. * Gère les événements de clic sur une case à cocher.
* Permet d'activer ou de désactiver la musique ou les effets sonores en fonction * Permet d'activer ou de désactiver la musique ou les effets sonores en fonction

View File

@@ -5,9 +5,5 @@
* @since 1.0 * @since 1.0
* @version 1.0 * @version 1.0
* @author Moncef STITI, Lenny FOULOU, Khalid CHENOUNA * @author Moncef STITI, Lenny FOULOU, Khalid CHENOUNA
* @see fr.monkhanny.dorfromantik.listeners.GameEndListener
* @see fr.monkhanny.dorfromantik.listeners.GameZoomListener
* @see fr.monkhanny.dorfromantik.listeners.MusicVolumeChangeListener
* @see fr.monkhanny.dorfromantik.listeners.TileSelectionListener
*/ */
package fr.monkhanny.dorfromantik.listeners; package fr.monkhanny.dorfromantik.listeners;

View File

@@ -133,7 +133,6 @@ public class Database {
/** /**
* Récupère toutes les séries de la base de données * Récupère toutes les séries de la base de données
* @return Les séries stockées dans la base de données * @return Les séries stockées dans la base de données
* @throws SQLException Si une erreur se produit lors de la récupération des séries
*/ */
public List<String> getAllSeries() { public List<String> getAllSeries() {
List<String> series = new ArrayList<>(); List<String> series = new ArrayList<>();
@@ -153,8 +152,9 @@ public class Database {
/** /**
* Récupère les séries dans une plage de dates * Récupère les séries dans une plage de dates
* @param startDate Date de début
* @param endDate Date de fin
* @return La liste des séries créées dans la plage de dates spécifiée * @return La liste des séries créées dans la plage de dates spécifiée
* @throws SQLException Si une erreur se produit lors de la récupération des séries
*/ */
public List<String> getSeriesByDateRange(Date startDate, Date endDate) { public List<String> getSeriesByDateRange(Date startDate, Date endDate) {
List<String> series = new ArrayList<>(); List<String> series = new ArrayList<>();
@@ -180,7 +180,6 @@ public class Database {
* @param endDate Date de fin * @param endDate Date de fin
* @param onlyDeveloperCreated Indique si seules les séries créées par les développeurs doivent être comptées * @param onlyDeveloperCreated Indique si seules les séries créées par les développeurs doivent être comptées
* @return Le nombre de séries créées dans la plage de dates spécifiée * @return Le nombre de séries créées dans la plage de dates spécifiée
* @throws SQLException Si une erreur se produit lors de la récupération du nombre de séries
*/ */
public int countSeriesByDateRange(Date startDate, Date endDate, boolean onlyDeveloperCreated) { public int countSeriesByDateRange(Date startDate, Date endDate, boolean onlyDeveloperCreated) {
int count = 0; int count = 0;
@@ -214,7 +213,6 @@ public class Database {
* @param itemsPerPage Nombre d'éléments par page * @param itemsPerPage Nombre d'éléments par page
* @param onlyDeveloperCreated Indique si seules les séries créées par les développeurs doivent être récupérées * @param onlyDeveloperCreated Indique si seules les séries créées par les développeurs doivent être récupérées
* @return La liste des séries créées dans la plage de dates spécifiée, paginée * @return La liste des séries créées dans la plage de dates spécifiée, paginée
* @throws SQLException Si une erreur se produit lors de la récupération des séries
*/ */
public List<String> getSeriesByDateRangePaginated(Date startDate, Date endDate, public List<String> getSeriesByDateRangePaginated(Date startDate, Date endDate,
int page, int itemsPerPage, int page, int itemsPerPage,
@@ -251,6 +249,7 @@ public class Database {
/** /**
* Récupère la seed correspondant au nom de la série * Récupère la seed correspondant au nom de la série
* @param name Le nom de la série
* @return La seed associée au nom de la série * @return La seed associée au nom de la série
* @throws SQLException Si une erreur se produit lors de la récupération de la seed * @throws SQLException Si une erreur se produit lors de la récupération de la seed
*/ */
@@ -269,6 +268,8 @@ public class Database {
/** /**
* Ajoute un score à une série * Ajoute un score à une série
* @param seriesId L'ID de la série
* @param score Le score à ajouter
* @throws SQLException Si une erreur se produit lors de l'ajout du score * @throws SQLException Si une erreur se produit lors de l'ajout du score
*/ */
public void addScore(long seriesId, int score) throws SQLException { public void addScore(long seriesId, int score) throws SQLException {
@@ -391,6 +392,9 @@ public class Database {
return scores; return scores;
} }
/**
* Ferme la connexion à la base de données
*/
public void close() { public void close() {
try { try {
if (this.database != null && !this.database.isClosed()) { if (this.database != null && !this.database.isClosed()) {

View File

@@ -17,6 +17,13 @@ import java.io.IOException;
*/ */
public class FontLoader { public class FontLoader {
/**
* Constructeur par défaut pour la classe FontLoader.
*/
public FontLoader() {
// Constructeur par défaut
}
/** /**
* Charge une police à partir du fichier spécifié. * Charge une police à partir du fichier spécifié.
* @param fontEnumName Enumération de la police à charger. * @param fontEnumName Enumération de la police à charger.

View File

@@ -26,6 +26,14 @@ public class FontManager {
*/ */
private static Font buttonFont; private static Font buttonFont;
/**
* Constructeur par défaut pour la classe FontManager.
*/
public FontManager() {
// Constructeur par défaut
}
/** /**
* Charge une police personnalisée à partir du fichier de police spécifié. * Charge une police personnalisée à partir du fichier de police spécifié.
* *

View File

@@ -18,6 +18,14 @@ public class ImageLoader {
*/ */
public static final Image APPLICATION_ICON = ImageLoader.loadImage("./ressources/images/Application/Application_Icon.jpg"); public static final Image APPLICATION_ICON = ImageLoader.loadImage("./ressources/images/Application/Application_Icon.jpg");
/**
* Constructeur par défaut pour la classe ImageLoader.
*/
public ImageLoader() {
// Constructeur par défaut
}
/** /**
* Charge une image à partir du fichier spécifié. * Charge une image à partir du fichier spécifié.
* *

View File

@@ -39,6 +39,13 @@ public class MusicPlayer {
*/ */
private static boolean isPlayingSound = false; private static boolean isPlayingSound = false;
/**
* Constructeur par défaut pour la classe MusicPlayer.
*/
public MusicPlayer() {
// Constructeur par défaut
}
/** /**
* Charge un fichier audio à partir du chemin spécifié. * Charge un fichier audio à partir du chemin spécifié.
* @param music Musique à charger * @param music Musique à charger
@@ -114,6 +121,8 @@ public class MusicPlayer {
/** /**
* Régler le volume du clip audio. * Régler le volume du clip audio.
* @param clip Clip audio
* @param volume Volume à régler
*/ */
public static void setVolume(Clip clip, int volume) { public static void setVolume(Clip clip, int volume) {
if (clip != null) { if (clip != null) {

View File

@@ -15,6 +15,13 @@ import java.io.IOException;
*/ */
public class SoundLoader { public class SoundLoader {
/**
* Constructeur par défaut pour la classe SoundLoader.
*/
public SoundLoader() {
// Constructeur par défaut
}
/** /**
* Charge un fichier audio à partir du chemin spécifié. * Charge un fichier audio à partir du chemin spécifié.
* *