Skip to content
Snippets Groups Projects
Commit c212b04b authored by VIGNERON Steven's avatar VIGNERON Steven
Browse files

V6

parent 56d42c25
No related branches found
No related tags found
No related merge requests found
doc/V6.png

188 KiB

@startuml
package DP{
skin rose
abstract class Arme {
#int degat
#String nom
#double poids
+ Arme(int degat, String nom, double poids)
}
class Epee extends Arme {
- int longueur
+ Epee()
}
class BatonDeSorcier extends Arme {
-String pouvoir
+ BatonDeSorcier()
}
class BaguetteMagique extends Arme {
-int soin
+ BaguetteMagique()
}
abstract class Personnage implements ComposantEquipe{
#int pointsDeVie
#int niveau
#String nom
#boolean vivant;
+ Personnage(int pointsDeVie, String nom, Arme arme)
+ void subirDegats(int d)
+ void setStrategie(StrategieCombat strategie)
+ boolean estVivant()
}
Personnage -left- "1" Arme
Personnage -- "1" StrategieCombat
class Guerrier extends Personnage {
- int force
+ Guerrier()
+ Guerrier(String nom, Arme arme, int pointsDeVie)
+ void accept(VisiteurPersonnage visiteur)
}
class Roi extends Personnage {
- int force
- String royaume
+ Roi()
+ Roi(String nom, Arme arme, int pointsDeVie)
+ void accept(VisiteurPersonnage visiteur)
}
class Sorcier extends Personnage {
- int intelligence
+ Sorcier()
+ Sorcier(String nom, Arme arme, int pointsDeVie)
+ void accept(VisiteurPersonnage visiteur)
}
class Guerisseur extends Personnage {
- int sagesse
+ Guerisseur()
+ Guerisseur(String nom, Arme arme, int pointsDeVie)
+ void accept(VisiteurPersonnage visiteur)
}
interface VisiteurPersonnage {
+ void visitGuerrier(Guerrier guerrier)
+ void visitRoi(Roi roi)
+ void visitSorcier(Sorcier sorcier)
+ void visitGuerisseur(Guerisseur guerisseur)
+ void visitEquipe(Equipe equipe)
}
class DegatVisiteur implements VisiteurPersonnage {
+ void visitGuerrier(Guerrier guerrier)
+ void visitRoi(Roi roi)
+ void visitSorcier(Sorcier sorcier)
+ void visitGuerisseur(Guerisseur guerisseur)
+ void visitEquipe(Equipe equipe)
}
class NiveauVisiteur implements VisiteurPersonnage {
+ void visitGuerrier(Guerrier guerrier)
+ void visitRoi(Roi roi)
+ void visitSorcier(Sorcier sorcier)
+ void visitGuerisseur(Guerisseur guerisseur)
+ void visitEquipe(Equipe equipe)
}
class CptSorcierVisiteur implements VisiteurPersonnage {
- int compteur
+ CptSorcierVisiteur()
+ void visitGuerrier(Guerrier guerrier)
+ void visitRoi(Roi roi)
+ void visitSorcier(Sorcier sorcier)
+ void visitGuerisseur(Guerisseur guerisseur)
+ void visitEquipe(Equipe equipe)
+ int getCompteur()
}
interface ComposantEquipe {
+ void accept(VisiteurPersonnage visiteur)
}
class Equipe implements ComposantEquipe {
+ Equipe()
+ void addComposant(ComposantEquipe ... ces)
+ void rmComposant(ComposantEquipe ce)
+ void accept(VisiteurPersonnage visiteur)
}
Equipe --"0..*" ComposantEquipe : composants
class Configuration {
- Configuration()
+ Configuration getInstance()
+ int getDifficulte()
+ int getMaxEquipe()
}
Configuration --"1" Configuration : instance (static)
interface StrategieCombat {
+ int modifieDegats(int d)
}
class StrategieNeutre implements StrategieCombat {
+ int modifieDegats(int d)
}
class StrategieAgressive implements StrategieCombat {
+ int modifieDegats(int d)
}
class StrategieDefensive implements StrategieCombat {
+ int modifieDegats(int d)
}
class FabriquePersonnage {
+ Personnage creerPersonnage(String personnage)
+ Personnage creerPersonnage(String type, String nom, Arme arme, int pointsDeVie)
}
}
@enduml
\ No newline at end of file
package DP;
public class FabriquePersonnage {
public Personnage creerPersonnage(String personnage) {
switch (personnage) {
case "Guerrier":
return new Guerrier();
case "Roi":
return new Roi();
case "Sorcier":
return new Sorcier();
case "Guerisseur":
return new Guerisseur();
default:
return null;
}
}
public Personnage creerPersonnage(String type, String nom, Arme arme, int pointsDeVie) {
switch (type.toLowerCase()) {
case "guerrier":
return new Guerrier(nom, arme, pointsDeVie);
case "roi":
return new Roi(nom, arme, pointsDeVie);
case "sorcier":
return new Sorcier(nom, arme, pointsDeVie);
case "guerisseur":
return new Guerisseur(nom, arme, pointsDeVie);
default:
return null;
}
}
}
......@@ -8,6 +8,11 @@ public class Guerisseur extends Personnage {
sagesse = 20;
}
public Guerisseur(String nom, Arme arme, int pointsDeVie) {
super(pointsDeVie, nom, arme);
sagesse = 20;
}
@Override
public void accept(VisiteurPersonnage visiteur) {
visiteur.visitGuerisseur(this);
......
......@@ -8,6 +8,11 @@ public class Guerrier extends Personnage {
force = 20;
}
public Guerrier(String nom, Arme arme, int pointsDeVie) {
super(pointsDeVie, nom, arme);
force = 20;
}
@Override
public void accept(VisiteurPersonnage visiteur) {
visiteur.visitGuerrier(this);
......
......@@ -10,6 +10,12 @@ public class Roi extends Personnage {
royaume = "Camavor";
}
public Roi(String nom, Arme arme, int pointsDeVie) {
super(pointsDeVie, nom, arme);
force = 50;
royaume = "Inconnus";
}
@Override
public void accept(VisiteurPersonnage visiteur) {
visiteur.visitRoi(this);
......
......@@ -8,6 +8,11 @@ public class Sorcier extends Personnage {
intelligence = 20;
}
public Sorcier(String nom, Arme arme, int pointsDeVie) {
super(pointsDeVie, nom, arme);
intelligence = 20;
}
@Override
public void accept(VisiteurPersonnage visiteur) {
visiteur.visitSorcier(this);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment