Bonjour, j’ai besoin de vous je désespère depuis tout à l’heure sur ce problème, en gros j’ai une classe générique Etre avec un nom et des points de vie, j’ai une sous-classe chamane qui a en plus de la force (f) et qui peut augmenter le nb de point de vie d’un personnage selon son pourcentage de force, et une sous-classe vampire qui fait baisser le nb de point de vie selon sa toxicité.
Le problème étant que je n’arrive pas à monter la vie des personnages (en l’occurrence Alpha ici), car la variable porCent ne veut pas prendre de valeur à virgule, si je mets une force de 100, porCent=1 mais si je mets une force à 10, il est égale à zéro.
J’ai essayé de remplacer double par float mais même résultat.
Classe Etre
CLasse Chaman
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public class Etre { String nom; float vie; //Constructeur Etre(String n,int v){ this.nom=n; this.vie=v; } String getName() { return this.nom; } float getLife() { return this.vie; } boolean isALive() { return this.vie>0; } boolean isDead() { return this.vie==0; } void increaseLife(int life) { this.vie+=life; } void decreaseLife(int life) { this.vie-=life; } float killPeople() { float lifeAfterDead =this.vie; this.vie=0; return lifeAfterDead; } }
Classe Vampire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class Chamane extends Etre{ int force; //constructeur Chamane(String n,int v, int f){ super(n, v); this.force=f; } void healPeople(Etre autre) { if(autre.vie>0) { //si la cible est en vie float porCent =this.force/100; // le chamane lui rajoute force% de la vie du soigné autre.vie+=autre.vie*porCent; } else { // Si la cible est morte autre.vie=1; //le chaman donne de sa vie au soigné this.vie-=1; } } }
Main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class Vampire extends Etre { int toxicite; //constructeur Vampire(String n, int v, int t){ super(n,v); this.toxicite=t; } void beatPeople(Etre autre){ if(this.vie==0) { //si la vie du vampire est vide il ne se passe rien autre.vie=autre.vie; } else if(autre.vie>this.vie) { // si la personne attaqué a plus de vie que le vampire this.vie+=toxicite; // le vampire lui aspire autant de vie qu'il a de toxicité autre.vie-=toxicite; } else if(autre.vie<toxicite) { //si la personne attaqué à moins de vie que le vampire a de this.vie+=autre.vie; // toxicité alors il lui aspire tout ce qu'il lui reste autre.vie=0; } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class exo3 { public static void main(String[]args) { Etre alpha=new Etre("Alpha",100); //création être Alpha Chamane inca=new Chamane("Inca", 20,10); // création d'un Chamane Vampire vlad=new Vampire("Vlad",40,5); // création d'un vampire System.out.println("vie ALpha "+alpha.vie); //affichage vie Alpha avant action vlad.beatPeople(alpha); // attaque de alpha par vlad System.out.println("vie ALpha "+alpha.vie); //affichage de vie après attaque inca.healPeople(alpha); // soin de alpha par inca System.out.println("vie ALpha "+alpha.vie); //affichage des vie de alpha après soin } }
Partager