package fr.iut_fbleau.Avalam;
/**
* La classe Tower
*
* Représente une tour dans le jeu Avalam.
* Une tour est caractérisée par :
* - une couleur (couleur du sommet)
* - une hauteur (nombre de pions empilés)
*
* Cette version est volontairement compatible avec le reste du projet :
* - constructeur Tower(Color) utilisé par BoardLoader
* - constructeur Tower(int, Color) utilisé dans d'autres parties possibles
* - méthode mergeTower(Tower) utilisée par AvalamBoard
* - méthode merge(Tower) conservée (si elle est utilisée ailleurs)
*/
public class Tower {
//Attributs
/** Hauteur de la tour (nombre de pions empilés). */
private int height;
/** Couleur du sommet de la tour (propriétaire actuel). */
private Color color;
//Constructeur
/**
* Construit une tour de hauteur 1 avec la couleur donnée.
* (Constructeur attendu par BoardLoader dans ton projet.)
*
* @param color couleur du sommet
*/
public Tower(Color color) {
this(1, color);
}
/**
* Construit une tour avec une hauteur et une couleur données.
*
* @param height hauteur initiale
* @param color couleur du sommet
*/
public Tower(int height, Color color) {
this.height = height;
this.color = color;
}
//Méthodes
/**
* Retourne la hauteur de la tour.
*
* @return hauteur
*/
public int getHeight() {
return height;
}
/**
* Retourne la couleur du sommet.
*
* @return couleur
*/
public Color getColor() {
return color;
}
/**
* Fusionne la tour src sur la tour courante (destination).
* La couleur du sommet devient celle de src.
*
* @param src tour source empilée sur la destination
*/
public void merge(Tower src) {
this.height += src.height;
this.color = src.color;
}
/**
* Alias de merge() pour compatibilité avec d'autres classes.
*
* @param src tour source empilée sur la destination
*/
public void mergeTower(Tower src) {
merge(src);
}
//Affichage
/**
* Représentation textuelle de la tour.
*
* @return chaîne représentant la tour
*/
@Override
public String toString() {
return color + "(" + height + ")";
}
}