Skip to content

Commit

Permalink
Finish the Druide
Browse files Browse the repository at this point in the history
  • Loading branch information
chaucorn committed Oct 25, 2023
1 parent 088b8a7 commit 21e5d6e
Show file tree
Hide file tree
Showing 3 changed files with 170 additions and 53 deletions.
44 changes: 36 additions & 8 deletions src/personnages/Druide.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,56 @@ public class Druide {
private int effetPotionMin;
private int effetPotionMax;
private int forcePotion;


public Druide(String nom, int effetPotionMin, int effetPotionMax) {
this.nom = nom;
this.effetPotionMin = effetPotionMin;
this.effetPotionMax = effetPotionMax;
this.forcePotion = 1;
parler("Bonjour, je suis le druide " + nom
+ " et ma potion peut aller d'une force " + effetPotionMin + " à "
+ effetPotionMax + ".");
+ " et ma potion peut aller d'une force " + effetPotionMin + " a "
+ effetPotionMax + ".");
}

public String getNom() {
return nom;
}


public int getPotion() {
return forcePotion;
}

public void parler(String texte) {
System.out.println(prendreParole() + "« " + texte + "»");
System.out.println(prendreParole() + "<< " + texte + ">>");
}

private String prendreParole() {
return "Le druide " + nom + " : ";
}

public void preparerPotion() {
Random random = new Random();
forcePotion = random.nextInt(effetPotionMin, effetPotionMax + 1);
if (forcePotion > 7) {
parler("J'ai prepare une super potion de force " + forcePotion);
} else {
parler("Je n'ai pas trouve tous les ingredients, ma potion est seulement de force " + forcePotion);
}
}

public void booster(Gaulois gaulois) {
if (gaulois.getNom() == "Obelix") {
parler("« Non, Obélix !... Tu n’auras pas de potion magique ! ");
}
else {
gaulois.boirePotion(forcePotion);
}
}

public static void main(String[] args) {
Druide panoramix = new Druide("Panoramix", 5, 10);
panoramix.preparerPotion();
}

}
40 changes: 26 additions & 14 deletions src/personnages/Gaulois.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ public class Gaulois {
private int effetPotion = 1;
private int force, nb_trophees;
private Equipement trophees[] = new Equipement[100];


public Gaulois(String nom, int force) {
this.nom = nom;
this.force = force;
Expand All @@ -15,22 +15,22 @@ public String getNom() {
return nom;
}
public void parler(String texte) {
System.out.println(prendreParole() + "« " + texte + "»");
System.out.println(prendreParole() + "<< " + texte + ">>");
}
// private String prendreParole() {
// return "Le gaulois " + nom + " : ";
// }

private String prendreParole() {
String texte = "Le gaulois " + nom + " : ";
return texte;
}
// public void frapper(Romain romain) {
// System.out.println(nom + " envoie un grand coup dans la mâchoire de " + romain.getNom());
}

// public void frapper(Romain romain) {
// System.out.println(nom + " envoie un grand coup dans la machoire de " + romain.getNom());
// romain.recevoirCoup(force / 3);
// }
// }
//
public void frapper(Romain romain) {
System.out.println(nom + " envoie un grand coup dans la machoire de " + romain.getNom());
Equipement trophees[] = romain.recevoirCoup((force / 3) * effetPotion);
Expand All @@ -40,15 +40,27 @@ public void frapper(Romain romain) {
return;
}


public void boirePotion (int potion) {
effetPotion = potion;
parler(" Merci Druide, je sens que ma force est " + effetPotion + " fois décuplée. ");
}


@Override
public String toString() {
return "Gaulois [nom=" + nom + ", force=" + force + ", effetPotion=" + effetPotion + "]";
}
public static void main(String[] args) {
Gaulois asterix = new Gaulois("Asterix", 12);
asterix.parler("Bonjour");
Romain unRomain = new Romain("Romain de test", 10);
asterix.frapper(unRomain);
Druide jambon = new Druide("Jambon", 5, 10);
jambon.preparerPotion();
asterix.boirePotion(jambon.getPotion());
Romain minus = new Romain("Minus", 8);
asterix.parler("Bonjour a tous");
minus.parler("HI");
asterix.frapper(minus);
asterix.frapper(minus);
asterix.frapper(minus);

}
}
139 changes: 108 additions & 31 deletions src/personnages/Romain.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ public class Romain {
private String nom;
private int force;
private Equipement[] equipements;
private int nbEquipement;
private String texte;
private int nbEquipement;
private String texte;

public Romain(String nom, int force) {
this.nom = nom;
assert force >= 0 : "La force est positive a la creation";
assert force >= 0 : "La force est positive a la creation";
this.force = force;
this.equipements = new Equipement[2];
nbEquipement = 0;
Expand All @@ -36,57 +36,134 @@ private String prendreParole() {
// parler("J'abandonne...");
// }
// }

public int getForce() {
return force;
}
return force;
}

public void sEquiper(Equipement equipement) {
switch (nbEquipement) {
case 2:
System.out.println("Le soldat " + nom + " est deja  bien protege !");
break;

case 1:
if (equipements[0] == equipement) {
System.out.println("Le soldat " + nom + " possede deja  un " + equipement.getNom() + " !");
} else{
equipements[1] = equipement;
case 2:
System.out.println("Le soldat " + nom + " est deja bien protege !");
break;

case 1:
if (equipements[0] == equipement) {
System.out.println("Le soldat " + nom + " possede deja un " + equipement.getNom() + " !");
} else{
equipements[1] = equipement;
nbEquipement++;
System.out.println("Le soldat " + nom + " s'equipe avec un " + equipement.getNom() + ".");
}
break;
case 0:
equipements[0] = equipement;
nbEquipement++;
System.out.println("Le soldat " + nom + " s'equipe avec un " + equipement.getNom() + ".");
break;
}

}

public Equipement[] recevoirCoup(int forceCoup) {
Equipement[] equipementEjecte = null;
// precondition
assert force > 0;
int oldForce = force;
forceCoup = CalculResistanceEquipement(forceCoup);
force -= forceCoup;
// if (force > 0) {
// parler("Aie");
// } else {
// equipementEjecte = ejecterEquipement();
// parler("J'abandonne...");
// }
switch (force) {
case 0:
parler("Aie...");
default:
equipementEjecte = ejecterEquipement();
parler("J'abandonne...");
break;
}
// post condition la force a diminuue
assert force < oldForce;
return equipementEjecte;
}

private int CalculResistanceEquipement(int forceCoup) {
texte = "Ma force est de " + this.force + ", et la force du coup est de " + forceCoup;
int resistanceEquipement = 0;
if (!(nbEquipement == 0)) {
texte += "\n Mais heureusement, grace a mon equipement sa force est diminue de ";
for (int i = 0; i < nbEquipement;) {
if ((equipements[i] != null && equipements[i].equals(Equipement.BOUCLIER)) == true) {
resistanceEquipement += 8;
} else {
System.out.println("Equipement casque");
resistanceEquipement += 5;
}
i++;
}
break;
case 0:
equipements[0] = equipement;
nbEquipement++;
System.out.println("Le soldat " + nom + " s'equipe avec un " + equipement.getNom() + ".");
break;
texte =+ resistanceEquipement + "!";
}

parler(texte);
forceCoup -= resistanceEquipement;
return forceCoup;
}


private Equipement[] ejecterEquipement() {
Equipement[] equipementEjecte = new Equipement[nbEquipement];
System.out.println("L'equipement de " + nom.toString() + "s'envole sous la force du coup.");
//TODO
int nbEquipementEjecte = 0;
for (int i = 0; i < nbEquipement; i++) {
if (equipements[i] == null) {
continue;
} else {
equipementEjecte[nbEquipementEjecte] = equipements[i];
nbEquipementEjecte++;
equipements[i] = null;
}
}
return equipementEjecte;
}



public static void main(String[] args) {
Romain minus = new Romain("Minus", 6);
System.out.println("La force de Minus est " + minus.getForce());
minus.sEquiper(Equipement.CASQUE);
minus.sEquiper(Equipement.CASQUE);
minus.sEquiper(Equipement.BOUCLIER);
minus.sEquiper(Equipement.CASQUE);
}
}


public Equipement[] recevoirCoup(int forceCoup) {
Equipement[] equipementEjecte = null;
// précondition
// pr�condition
assert force > 0;
int oldForce = force;
forceCoup = CalculResistanceEquipement(forceCoup);
force -= forceCoup;
// if (force > 0) {
// parler("Aïe");
// parler("A�e");
// } else {
// equipementEjecte = ejecterEquipement();
// parler("J'abandonne...");
// }
switch (force) {
case 0:
parler("Aïe");
parler("A�e");
default:
equipementEjecte = ejecterEquipement();
parler("J'abandonne...");
break;
}
// post condition la force a diminuée
// post condition la force a diminu�e
assert force < oldForce;
return equipementEjecte;
}
Expand All @@ -95,7 +172,7 @@ private int CalculResistanceEquipement(int forceCoup) {
texte = "Ma force est de " + this.force + ", et la force du coup est de " + forceCoup;
int resistanceEquipement = 0;
if (!(nbEquipement == 0)) {
texte += "\n Mais heureusement, grace à mon équipement sa force est diminué de ";
texte += "\n Mais heureusement, grace mon �quipement sa force est diminu� de ";
for (int i = 0; i < nbEquipement;) {
if ((equipements[i] != null && equipements[i].equals(Equipement.BOUCLIER)) == true) {
resistanceEquipement += 8;
Expand All @@ -114,7 +191,7 @@ private int CalculResistanceEquipement(int forceCoup) {

private Equipement[] ejecterEquipement() {
Equipement[] equipementEjecte = new Equipement[nbEquipement];
System.out.println("L'équipement de " + nom.toString() + "s'envole sous la force du coup.");
System.out.println("L'�quipement de " + nom.toString() + "s'envole sous la force du coup.");
//TODO
int nbEquipementEjecte = 0;
for (int i = 0; i < nbEquipement; i++) {
Expand Down

0 comments on commit 21e5d6e

Please sign in to comment.