lien Etat et strategie
This commit is contained in:
parent
728a8f31a6
commit
3215a06a9c
@ -1,5 +1,6 @@
|
|||||||
package Cases;
|
package Cases;
|
||||||
|
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -7,6 +8,7 @@ import java.util.HashMap;
|
|||||||
public abstract class CaseAbstraite {
|
public abstract class CaseAbstraite {
|
||||||
Personnage occupant;
|
Personnage occupant;
|
||||||
|
|
||||||
|
|
||||||
HashMap<PointsCardinaux, CaseAbstraite> voisins;
|
HashMap<PointsCardinaux, CaseAbstraite> voisins;
|
||||||
|
|
||||||
Coordonnees coord;
|
Coordonnees coord;
|
||||||
|
5
src/Comportements/EAction.java
Normal file
5
src/Comportements/EAction.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package Comportements;
|
||||||
|
|
||||||
|
public enum EAction {
|
||||||
|
ChangerCouleurCase,RamasserNeige,SeDeplacer,TirerBalon,TirerBouleDeNeige,Null
|
||||||
|
}
|
@ -9,4 +9,8 @@ public abstract class EtatPersonnageAbstrait {
|
|||||||
protected EtatPersonnageAbstrait(Personnage perso){
|
protected EtatPersonnageAbstrait(Personnage perso){
|
||||||
this.joueur = perso;
|
this.joueur = perso;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract void AnalyseJoueur();
|
||||||
|
public abstract void ExecutionJoueur();
|
||||||
|
public abstract void ConflitJoueur();
|
||||||
}
|
}
|
||||||
|
32
src/Etats/EtatPersonnageCombattant.java
Normal file
32
src/Etats/EtatPersonnageCombattant.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package Etats;
|
||||||
|
|
||||||
|
import Person.Personnage;
|
||||||
|
|
||||||
|
public class EtatPersonnageCombattant extends EtatPersonnageAbstrait {
|
||||||
|
|
||||||
|
//Etat d'un personnage avec un marteau, cible les joueurs et ignore le reste.
|
||||||
|
|
||||||
|
protected EtatPersonnageCombattant(Personnage perso) {
|
||||||
|
super(perso);
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void AnalyseJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ExecutionJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ConflitJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -4,9 +4,36 @@ import Person.Personnage;
|
|||||||
|
|
||||||
public class EtatPersonnageKO extends EtatPersonnageAbstrait {
|
public class EtatPersonnageKO extends EtatPersonnageAbstrait {
|
||||||
|
|
||||||
|
private int nbTourKO;
|
||||||
|
|
||||||
public EtatPersonnageKO(Personnage perso) {
|
public EtatPersonnageKO(Personnage perso) {
|
||||||
super(perso);
|
super(perso);
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
|
this.nbTourKO = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void AnalyseJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ExecutionJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
nbTourKO--;
|
||||||
|
if (nbTourKO==0){
|
||||||
|
this.joueur.ChangeEtat(EEtat.EtatOK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ConflitJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,73 @@
|
|||||||
package Etats;
|
package Etats;
|
||||||
|
|
||||||
|
import Comportements.ComportementAction;
|
||||||
|
import Comportements.ComportementActionChangerCouleurCase;
|
||||||
|
import Comportements.ComportementActionRamasserNeige;
|
||||||
|
import Comportements.ComportementActionSeDeplacer;
|
||||||
|
import Comportements.ComportementActionTirerBalon;
|
||||||
|
import Comportements.ComportementActionTirerBouleDeNeige;
|
||||||
|
import Comportements.EAction;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
|
||||||
public class EtatPersonnageOK extends EtatPersonnageAbstrait {
|
public class EtatPersonnageOK extends EtatPersonnageAbstrait {
|
||||||
|
|
||||||
|
private ComportementAction Action;
|
||||||
|
|
||||||
public EtatPersonnageOK(Personnage perso) {
|
public EtatPersonnageOK(Personnage perso) {
|
||||||
super(perso);
|
super(perso);
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
|
this.ChangerAction(EAction.Null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void AnalyseJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ExecutionJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
Action.executerAction(this.joueur.getCaseCourante());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ConflitJoueur() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ChangerAction(EAction nouvelAction){
|
||||||
|
|
||||||
|
switch(nouvelAction)
|
||||||
|
{
|
||||||
|
case ChangerCouleurCase:
|
||||||
|
Action = new ComportementActionChangerCouleurCase();
|
||||||
|
break;
|
||||||
|
case RamasserNeige:
|
||||||
|
Action = new ComportementActionRamasserNeige();
|
||||||
|
break;
|
||||||
|
case SeDeplacer:
|
||||||
|
Action = new ComportementActionSeDeplacer();
|
||||||
|
break;
|
||||||
|
case TirerBalon:
|
||||||
|
Action = new ComportementActionTirerBalon();
|
||||||
|
break;
|
||||||
|
case TirerBouleDeNeige:
|
||||||
|
Action = new ComportementActionTirerBouleDeNeige();
|
||||||
|
break;
|
||||||
|
case Null:
|
||||||
|
Action = null;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.joueur.setAction(nouvelAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package Person;
|
|||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Comportements.ComportementAction;
|
import Comportements.ComportementAction;
|
||||||
|
import Comportements.EAction;
|
||||||
import Composition.PersonnagesAbstraits;
|
import Composition.PersonnagesAbstraits;
|
||||||
import Etats.EEtat;
|
import Etats.EEtat;
|
||||||
import Etats.EtatPersonnageAbstrait;
|
import Etats.EtatPersonnageAbstrait;
|
||||||
@ -9,13 +10,16 @@ import Etats.EtatPersonnageKO;
|
|||||||
import Etats.EtatPersonnageOK;
|
import Etats.EtatPersonnageOK;
|
||||||
|
|
||||||
public class Personnage extends PersonnagesAbstraits {
|
public class Personnage extends PersonnagesAbstraits {
|
||||||
|
|
||||||
|
|
||||||
protected CaseAbstraite caseCourante;
|
protected CaseAbstraite caseCourante;
|
||||||
protected String nom;
|
protected String nom;
|
||||||
protected String groupe;
|
protected String groupe;
|
||||||
protected double pointsDeVie;
|
protected double pointsDeVie;
|
||||||
protected double force;
|
protected double force;
|
||||||
protected double vitesse;
|
protected double vitesse;
|
||||||
protected ComportementAction action;
|
protected double porter;
|
||||||
|
protected EAction action;
|
||||||
private EtatPersonnageAbstrait etatCourant;
|
private EtatPersonnageAbstrait etatCourant;
|
||||||
|
|
||||||
protected Personnage(String name, ComportementAction c) {
|
protected Personnage(String name, ComportementAction c) {
|
||||||
@ -23,10 +27,11 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
this.pointsDeVie = 100;
|
this.pointsDeVie = 100;
|
||||||
this.force = 10;
|
this.force = 10;
|
||||||
this.vitesse = 1;
|
this.vitesse = 1;
|
||||||
|
this.porter = 2;
|
||||||
|
|
||||||
this.caseCourante = null;
|
this.caseCourante = null;
|
||||||
this.etatCourant = new EtatPersonnageOK(this);
|
this.etatCourant = new EtatPersonnageOK(this);
|
||||||
this.action = c;
|
this.action = EAction.Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Personnage(String name, double lifePoint, double strength, double speed, ComportementAction a) {
|
protected Personnage(String name, double lifePoint, double strength, double speed, ComportementAction a) {
|
||||||
@ -37,7 +42,7 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
|
|
||||||
this.caseCourante=null;
|
this.caseCourante=null;
|
||||||
this.etatCourant= new EtatPersonnageOK(this);
|
this.etatCourant= new EtatPersonnageOK(this);
|
||||||
this.action = a;
|
this.action = EAction.Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -116,13 +121,34 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
this.caseCourante = caseCourante;
|
this.caseCourante = caseCourante;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double getPorter() {
|
||||||
|
return porter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPorter(double porter) {
|
||||||
|
this.porter = porter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EAction getAction() {
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAction(EAction action) {
|
||||||
|
this.action = action;
|
||||||
|
}
|
||||||
|
|
||||||
public void AnalyseSituation() {
|
public void AnalyseSituation() {
|
||||||
// Todo
|
// Todo
|
||||||
|
etatCourant.AnalyseJoueur();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Execution() {
|
public void Execution() {
|
||||||
// Todo
|
// Todo
|
||||||
|
etatCourant.ExecutionJoueur();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResoudreLesConflits(){
|
||||||
|
etatCourant.ConflitJoueur();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user