package fr.iut_fbleau.Avalam; import fr.iut_fbleau.GameAPI.AbstractPly; import fr.iut_fbleau.GameAPI.Player; /** * La classe AvalamPly * * Représente un coup (ply) dans le jeu Avalam. * Un coup est défini par : * - un joueur (PLAYER1 ou PLAYER2) * - une position source (xFrom, yFrom) * - une position destination (xTo, yTo) * * Cette classe ne vérifie pas la légalité : tout est délégué à AvalamBoard. */ public class AvalamPly extends AbstractPly { //Attributs /** Coordonnée ligne de la case source. */ private final int xFrom; /** Coordonnée colonne de la case source. */ private final int yFrom; /** Coordonnée ligne de la case destination. */ private final int xTo; /** Coordonnée colonne de la case destination. */ private final int yTo; //Constructeur /** * Construit un coup Avalam. * * @param player joueur qui joue le coup * @param xFrom ligne d'origine * @param yFrom colonne d'origine * @param xTo ligne de destination * @param yTo colonne de destination */ public AvalamPly(Player player, int xFrom, int yFrom, int xTo, int yTo) { super(player); this.xFrom = xFrom; this.yFrom = yFrom; this.xTo = xTo; this.yTo = yTo; } //Méthodes /** * Retourne la ligne d'origine. * * @return ligne source */ public int getXFrom() { return xFrom; } /** * Retourne la colonne d'origine. * * @return colonne source */ public int getYFrom() { return yFrom; } /** * Retourne la ligne de destination. * * @return ligne destination */ public int getXTo() { return xTo; } /** * Retourne la colonne de destination. * * @return colonne destination */ public int getYTo() { return yTo; } //Affichage /** * Retourne une représentation textuelle du coup. * * @return chaîne décrivant le coup */ @Override public String toString() { return "AvalamPly{" + "player=" + getPlayer() + ", (" + xFrom + "," + yFrom + ") -> (" + xTo + "," + yTo + ")" + '}'; } }