Skip to content
Snippets Groups Projects
Commit 4dc5164b authored by tompotio's avatar tompotio
Browse files

V5

parent 37f12a4b
Branches
Tags
No related merge requests found
package DP.Strategie;
public interface Strategie {
int attaque(int degat);
int estAttaque(int degat);
}
package Personnage;
import Arme.*;
import DP.Composite.EquipeI;
import DP.Strategie.Strategie;
import DP.Visiteur.PersonnageVisite;
public abstract class Personnage implements EquipeI, PersonnageVisite {
private int pointsDeVie;
private int niveau;
private String nom;
private int defense;
protected Arme arme;
protected Strategie strategie;
public Personnage(String nom, int pointsDeVie){
this.nom = nom;
this.pointsDeVie = pointsDeVie;
......@@ -24,12 +26,23 @@ public abstract class Personnage implements EquipeI, PersonnageVisite {
public int getNiveau(){
return this.niveau;
}
public void setDefense(int defense) {
this.defense = defense;
}
public int getDefense(){return this.defense;}
@Override
public boolean estUnPersonnage() {
return true;
}
public void setStrategie(Strategie strategie){
this.strategie = strategie;
}
public void estAttaque(int degat){
strategie.estAttaque(degat);
}
public int attaquer(){
return strategie.attaque(arme.getDegat());
}
public abstract boolean estUnGuerisseur();
public abstract boolean estUnGuerrier();
public abstract boolean estUnRoi();
......
package Strategie;
import DP.Strategie.Strategie;
public class Agressive implements Strategie {
@Override
public int attaque(int degat) {
return (int) ( degat * 1.2);
}
@Override
public int estAttaque(int degat) {
return (int) ( degat * 1.2);
}
}
package Strategie;
import DP.Strategie.Strategie;
public class Defensive implements Strategie {
@Override
public int attaque(int degat) {
return (int)(degat * 0.8);
}
@Override
public int estAttaque(int degat) {
return (int)(degat * 0.8);
}
}
package Strategie;
import DP.Strategie.Strategie;
public class Neutre implements Strategie {
@Override
public int attaque(int degat) {
return degat;
}
@Override
public int estAttaque(int degat) {
return degat;
}
}
package Tests;
import Personnage.*;
import Visiteur.DegatVisiteur;
import Visiteur.AugmenterDegatVisiteur;
import Visiteur.NiveauVisiteur;
import org.junit.jupiter.api.Test;
import static org.junit.Assert.assertTrue;
......@@ -38,7 +38,7 @@ class V1Test {
System.out.println(degatSorcier + " : " + degatRoi);
DegatVisiteur degatVisiteur = new DegatVisiteur();
AugmenterDegatVisiteur degatVisiteur = new AugmenterDegatVisiteur();
sorcier.accepter(degatVisiteur);
roi.accepter(degatVisiteur);
......
package Visiteur;
import DP.Visiteur.VisiteurPersonnage;
import Personnage.*;
public class AugmenterDefenseVisiteur implements VisiteurPersonnage {
@Override
public void visite(Guerrier guerrier) {
guerrier.setDefense(guerrier.getDefense() + 5);
}
@Override
public void visite(Guerisseur guerisseur) {
guerisseur.setDefense(guerisseur.getDefense() + 2);
}
@Override
public void visite(Roi roi) {
roi.setDefense(roi.getDefense() + 5);
}
@Override
public void visite(Sorcier sorcier) {
sorcier.setDefense(sorcier.getDefense() + 2);
}
@Override
public void visite(Equipe equipe) {
}
}
......@@ -4,7 +4,7 @@ import DP.Visiteur.VisiteurPersonnage;
import Personnage.*;
import Arme.*;
public class DegatVisiteur implements VisiteurPersonnage {
public class AugmenterDegatVisiteur implements VisiteurPersonnage {
@Override
public void visite(Guerrier guerrier) {
Arme armeAAugmenter = guerrier.getArme();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment