diff --git a/src/tpQU/tp02/WarriorCard.java b/src/tpQU/tp02/WarriorCard.java new file mode 100644 index 0000000000000000000000000000000000000000..b3debfa51e60dd8d4231ea7420cb9a853b6ebaa5 --- /dev/null +++ b/src/tpQU/tp02/WarriorCard.java @@ -0,0 +1,118 @@ +package tpQU.tp02; + +/** + * Classe permettant de créer une carte WarriorCard avec les différents attributs. + * @author Hugo D */ +public class WarriorCard { + //attributes + /** + * Attribut pour le nom de la carte. */ + private String name; + + /** + * Attribut pour la valeur "force" de la carte. */ + private int strength; + + /** + * Attribut pour la valeur "agilité" de la carte. */ + private int agility; + + //constructor + + /** + * Constructeur principale de la classe WarriorCard. + * @param name nom de la carte. + * @param s Attribut "froce" de la carte. + * @param ag Attribut "agilité" de la carte. */ + public WarriorCard(String name, int s, int ag){ + this.name = name; + this.strength = s; + this.agility = ag; + } + + /** + * getteur pour l'attribut nom de la carte + * @return renvoie un String de l'attribut nom de la carte courante. */ + public String getName(){ + return this.name; + } + + /** + * getteur pour l'attribut "force" de la carte". + * @return renvoie un int de l'attribut "force" de la carte courante. */ + public int getStrength(){ + return this.strength; + } + + /** + * getteur pour l'attribut "agilité" de la carte. + * @return renvoie un int de l'attribut "agilité" de la carte courante. */ + public int getAgility(){ + return this.agility; + } + + /** + * setteur pout l'attribut nom de la carte. + * @param name Nouveau nom à attribuer à la carte courante. */ + public void setNom(String name){ + this.name = name; + } + + /** + * setteur pour l'attribut "strength" de la carte. + * @param strength Nouvelle valeur pour l'attribut "force" de la carte courante. */ + public void setStrength(int strength){ + this.strength = strength; + } + + /** + * setteur pout l'attribut "agility" de la carte. + * @param agility Nouvelle valeur pour l'attribut "agility" de la carte courante. */ + public void setAgility(int agility){ + this.agility = agility; + } + + /** + * Vérifie si un objet WarriorCard est égal à un autre. + * @param obj Autre carte passé en paramètre. + * @return renvoie True si les deux cartes sont identiques, sinon non. */ + @Override + public boolean equals(Object obj) { + if(this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + WarriorCard other = (WarriorCard) obj; + if(strength != other.strength) return false; + if(agility != other.agility) return false; + if (name == null){ + if(other.name != null) return false; + } else if(!name.equals(other.name)) return false; + return true; + } + /** + * Compare l'attribut "Force" de 2 cartes. + * @param other Autre carte passé en paramètre. + * @return renvoie -1 si la carte passé en paramètre à une valeur de "force" est supérieur à celle courante, 1 si inférieur et 0 si identique.*/ + public int compareStrength(WarriorCard other){ + if(this.strength<other.strength) return -1; + if(this.strength>other.strength) return 1; + return 0; + } + + /** + * Compare l'attribut "Agilité" de 2 cartes. + * @param other Autre carte passé en paramètre. + * @return renvoie -1 si la carte passé en paramètre à une valeur de "agilité" est supérieur à celle courante, 1 si inférieur et 0 si identique.*/ + public int compareAgility(WarriorCard other){ + if(this.agility<other.agility) return -1; + if(this.agility>other.agility) return 1; + return 0; + } + + /** + * renvoie la carte et ces valeur. + * @return renvoieee 'nom'[S='strength',A='agility'].*/ + public String toString(){ + return this.name + "[S=" + this.strength + ",A=" + this.agility + "]"; + } + +}