diff --git a/src/fr/monkhanny/dorfromantik/game/RemainingTilesIndicator.java b/src/fr/monkhanny/dorfromantik/game/RemainingTilesIndicator.java index 361f2e0..38ba4a8 100644 --- a/src/fr/monkhanny/dorfromantik/game/RemainingTilesIndicator.java +++ b/src/fr/monkhanny/dorfromantik/game/RemainingTilesIndicator.java @@ -8,19 +8,49 @@ import java.awt.Polygon; import java.awt.RenderingHints; import java.awt.RadialGradientPaint; +/** + * Classe RemainingTilesIndicator, utilisée pour représenter graphiquement l'indicateur + * des tuiles restantes dans le jeu. Affiche une pile d'hexagones pour visualiser les tuiles + * disponibles et leur décompte. + * + * @version 1.0 + * @author Moncef STITI, Khalid CHENOUNA + */ + public class RemainingTilesIndicator { private int remainingTiles; private int maxTiles; + /** + * Constructeur de la classe RemainingTilesIndicator. + * + * @param maxTiles Le nombre maximum de tuiles disponibles au départ. + */ + public RemainingTilesIndicator(int maxTiles) { this.maxTiles = maxTiles; this.remainingTiles = maxTiles; } + /** + * Met à jour le nombre de tuiles restantes, en s'assurant qu'il reste + * dans les limites valides (entre 0 et maxTiles). + * + * @param remainingTiles Le nouveau nombre de tuiles restantes. + */ + public void setRemainingTiles(int remainingTiles) { this.remainingTiles = Math.max(0, Math.min(remainingTiles, maxTiles)); } + /** + * Dessine l'indicateur des tuiles restantes à une position donnée. + * + * @param g L'objet Graphics utilisé pour dessiner. + * @param x La position X de l'indicateur. + * @param y La position Y de l'indicateur. + */ + public void draw(Graphics g, int x, int y) { Graphics2D g2d = (Graphics2D) g; int tileWidth = 50; // Largeur de l'assiette @@ -62,14 +92,28 @@ public class RemainingTilesIndicator { g2d.dispose(); } + /** + * Retourne la hauteur totale occupée par les tuiles restantes dans l'indicateur. + * + * @return La hauteur totale en pixels. + */ + public int getTotalHeight() { int tileHeight = 12; // Hauteur de l'assiette int gap = 1; // Espace entre les tuiles return remainingTiles * (tileHeight + gap); } - - // Méthode pour créer un hexagone + /** + * Crée un polygone hexagonal représentant une tuile. + * + * @param x La position X de l'hexagone. + * @param y La position Y de l'hexagone. + * @param width La largeur de l'hexagone. + * @param height La hauteur de l'hexagone. + * @return Un objet Polygon représentant l'hexagone. + */ + private Polygon createHexagon(int x, int y, int width, int height) { Polygon hexagon = new Polygon();