ajout de la logique des règles de coups
This commit is contained in:
129
fr/iut_fbleau/Avalam/AvalamPly.java
Normal file
129
fr/iut_fbleau/Avalam/AvalamPly.java
Normal file
@@ -0,0 +1,129 @@
|
||||
package fr.iut_fbleau.Avalam;
|
||||
|
||||
import fr.iut_fbleau.GameAPI.AbstractPly;
|
||||
import fr.iut_fbleau.GameAPI.Player;
|
||||
|
||||
/**
|
||||
* Représente un coup dans le jeu Avalam.
|
||||
* Un coup consiste à déplacer une tour de la position (xFrom, yFrom)
|
||||
* vers la position (xTo, yTo).
|
||||
*
|
||||
* @author AMARY Aurelien, DICK Adrien, FELIX-VIMALARATNAM Patrick, RABAN Hugo
|
||||
* @version 1.0
|
||||
*/
|
||||
public class AvalamPly extends AbstractPly {
|
||||
/** Coordonnée X de la case source */
|
||||
private int xFrom;
|
||||
/** Coordonnée Y de la case source */
|
||||
private int yFrom;
|
||||
/** Coordonnée X de la case destination */
|
||||
private int xTo;
|
||||
/** Coordonnée Y de la case destination */
|
||||
private int yTo;
|
||||
/** Hauteur de la tour source (utilisée pour l'annulation de coup) */
|
||||
private int sourceHeight;
|
||||
|
||||
/**
|
||||
* Constructeur par défaut d'un coup Avalam.
|
||||
* La hauteur de la source sera définie automatiquement lors de l'application du coup.
|
||||
*
|
||||
* @param joueur Le joueur qui effectue le coup
|
||||
* @param xFrom Coordonnée X de la case source
|
||||
* @param yFrom Coordonnée Y de la case source
|
||||
* @param xTo Coordonnée X de la case destination
|
||||
* @param yTo Coordonnée Y de la case destination
|
||||
*/
|
||||
public AvalamPly(Player joueur, int xFrom, int yFrom, int xTo, int yTo) {
|
||||
super(joueur);
|
||||
this.xFrom = xFrom;
|
||||
this.yFrom = yFrom;
|
||||
this.xTo = xTo;
|
||||
this.yTo = yTo;
|
||||
this.sourceHeight = -1; // Sera défini lors du doPly
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructeur avec hauteur de la source spécifiée.
|
||||
* Utilisé principalement pour l'annulation de coups.
|
||||
*
|
||||
* @param joueur Le joueur qui effectue le coup
|
||||
* @param xFrom Coordonnée X de la case source
|
||||
* @param yFrom Coordonnée Y de la case source
|
||||
* @param xTo Coordonnée X de la case destination
|
||||
* @param yTo Coordonnée Y de la case destination
|
||||
* @param sourceHeight Hauteur de la tour source avant le déplacement
|
||||
*/
|
||||
public AvalamPly(Player joueur, int xFrom, int yFrom, int xTo, int yTo, int sourceHeight) {
|
||||
super(joueur);
|
||||
this.xFrom = xFrom;
|
||||
this.yFrom = yFrom;
|
||||
this.xTo = xTo;
|
||||
this.yTo = yTo;
|
||||
this.sourceHeight = sourceHeight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne la coordonnée X de la case source.
|
||||
*
|
||||
* @return La coordonnée X de la case source
|
||||
*/
|
||||
public int getXFrom() {
|
||||
return xFrom;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne la coordonnée Y de la case source.
|
||||
*
|
||||
* @return La coordonnée Y de la case source
|
||||
*/
|
||||
public int getYFrom() {
|
||||
return yFrom;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne la coordonnée X de la case destination.
|
||||
*
|
||||
* @return La coordonnée X de la case destination
|
||||
*/
|
||||
public int getXTo() {
|
||||
return xTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne la coordonnée Y de la case destination.
|
||||
*
|
||||
* @return La coordonnée Y de la case destination
|
||||
*/
|
||||
public int getYTo() {
|
||||
return yTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne la hauteur de la tour source.
|
||||
*
|
||||
* @return La hauteur de la tour source, ou -1 si non définie
|
||||
*/
|
||||
public int getSourceHeight() {
|
||||
return sourceHeight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Définit la hauteur de la tour source.
|
||||
* Cette méthode est appelée automatiquement lors de l'application du coup.
|
||||
*
|
||||
* @param height La hauteur de la tour source
|
||||
*/
|
||||
public void setSourceHeight(int height) {
|
||||
this.sourceHeight = height;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AvalamPly{" +
|
||||
"joueur=" + getPlayer() +
|
||||
", from=(" + xFrom + "," + yFrom + ")" +
|
||||
", to=(" + xTo + "," + yTo + ")" +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user