nettoyage + lisibilité code + changement structure
This commit is contained in:
@@ -1,48 +1,99 @@
|
||||
package fr.iut_fbleau.Avalam;
|
||||
|
||||
/**
|
||||
* Représente une tour dans le jeu Avalam.
|
||||
*
|
||||
* Une tour possède :
|
||||
* - la couleur de son sommet
|
||||
* - sa hauteur (nombre de pions)
|
||||
*/
|
||||
* La classe <code>Tower</code>
|
||||
*
|
||||
* 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 {
|
||||
|
||||
private Color color;
|
||||
//Attributs
|
||||
|
||||
/** Hauteur de la tour (nombre de pions empilés). */
|
||||
private int height;
|
||||
|
||||
/** Nouvelle tour de hauteur 1 */
|
||||
/** 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.color = color;
|
||||
this.height = 1;
|
||||
this(1, color);
|
||||
}
|
||||
|
||||
/** Tour avec couleur et hauteur existantes */
|
||||
public Tower(Color color, int height) {
|
||||
this.color = 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;
|
||||
}
|
||||
|
||||
public Color getColor() {
|
||||
return color;
|
||||
}
|
||||
//Méthodes
|
||||
|
||||
/**
|
||||
* Retourne la hauteur de la tour.
|
||||
*
|
||||
* @return hauteur
|
||||
*/
|
||||
public int getHeight() {
|
||||
return height;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fusionne this (destination) avec src (source).
|
||||
* La source monte sur la destination →
|
||||
* - la couleur du sommet devient celle de src
|
||||
* - la hauteur s’additionne
|
||||
*/
|
||||
public void mergeTower(Tower src) {
|
||||
this.color = src.color;
|
||||
this.height = this.height + src.height;
|
||||
* Retourne la couleur du sommet.
|
||||
*
|
||||
* @return couleur
|
||||
*/
|
||||
public Color getColor() {
|
||||
return color;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fusionne la tour <code>src</code> sur la tour courante (destination).
|
||||
* La couleur du sommet devient celle de <code>src</code>.
|
||||
*
|
||||
* @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 + ")";
|
||||
|
||||
Reference in New Issue
Block a user