From bcd693aba7d1b227c9a6f538c0b9166472bd0109 Mon Sep 17 00:00:00 2001 From: aminecmi Date: Sat, 31 Jan 2015 18:27:18 +0100 Subject: [PATCH] Ils sont vivants ! --- src/Cases/RandomPointCardinal.java | 17 ++++++++++++++ src/Comportements/ComportementAction.java | 4 ++-- .../ComportementActionChangerCouleurCase.java | 8 +++---- .../ComportementActionRamasserNeige.java | 10 ++++----- .../ComportementActionSeDeplacer.java | 22 +++++++++++++++---- .../ComportementActionTirerBalon.java | 10 ++++----- .../ComportementActionTirerBouleDeNeige.java | 10 ++++----- src/Etats/EtatPersonnageOK.java | 4 ++-- 8 files changed, 55 insertions(+), 30 deletions(-) create mode 100644 src/Cases/RandomPointCardinal.java diff --git a/src/Cases/RandomPointCardinal.java b/src/Cases/RandomPointCardinal.java new file mode 100644 index 0000000..99ee60d --- /dev/null +++ b/src/Cases/RandomPointCardinal.java @@ -0,0 +1,17 @@ +package Cases; + +import java.util.Random; + +public class RandomPointCardinal { + + private static final Random RND = new Random(); + private final E[] values; + + public RandomPointCardinal(Class token) { + values = token.getEnumConstants(); + } + + public E random() { + return values[RND.nextInt(values.length)]; + } +} diff --git a/src/Comportements/ComportementAction.java b/src/Comportements/ComportementAction.java index 2086e4d..35b3715 100644 --- a/src/Comportements/ComportementAction.java +++ b/src/Comportements/ComportementAction.java @@ -1,7 +1,7 @@ package Comportements; -import Cases.CaseAbstraite; +import Person.Personnage; public interface ComportementAction { - public void executerAction(CaseAbstraite c); + public void executerAction(Personnage joueur); } diff --git a/src/Comportements/ComportementActionChangerCouleurCase.java b/src/Comportements/ComportementActionChangerCouleurCase.java index e557853..8856b88 100644 --- a/src/Comportements/ComportementActionChangerCouleurCase.java +++ b/src/Comportements/ComportementActionChangerCouleurCase.java @@ -1,15 +1,15 @@ package Comportements; -import Cases.CaseAbstraite; import Cases.CaseColore; +import Person.Personnage; import Person.PersonnageBattleZone; public class ComportementActionChangerCouleurCase implements ComportementAction { @Override - public void executerAction(CaseAbstraite c) { - CaseColore caseColore = (CaseColore) c; - PersonnageBattleZone personnage = (PersonnageBattleZone) c.getOccupant(); + public void executerAction(Personnage p) { + CaseColore caseColore = (CaseColore) p.getCaseCourante(); + PersonnageBattleZone personnage = (PersonnageBattleZone) p; caseColore.setCouleur(personnage.getCouleur()); } } diff --git a/src/Comportements/ComportementActionRamasserNeige.java b/src/Comportements/ComportementActionRamasserNeige.java index fd09aa3..580b35e 100644 --- a/src/Comportements/ComportementActionRamasserNeige.java +++ b/src/Comportements/ComportementActionRamasserNeige.java @@ -1,13 +1,11 @@ package Comportements; -import Cases.CaseAbstraite; +import Person.Personnage; public class ComportementActionRamasserNeige implements ComportementAction { - @Override - public void executerAction(CaseAbstraite c) { - // TODO Auto-generated method stub - - } + @Override + public void executerAction(Personnage joueur) { + } } diff --git a/src/Comportements/ComportementActionSeDeplacer.java b/src/Comportements/ComportementActionSeDeplacer.java index 85c3479..2d802e6 100644 --- a/src/Comportements/ComportementActionSeDeplacer.java +++ b/src/Comportements/ComportementActionSeDeplacer.java @@ -1,13 +1,27 @@ package Comportements; import Cases.CaseAbstraite; +import Cases.PointsCardinaux; +import Cases.RandomPointCardinal; +import Person.Personnage; + +import java.util.HashMap; public class ComportementActionSeDeplacer implements ComportementAction { @Override - public void executerAction(CaseAbstraite c) { - // TODO Auto-generated method stub - - } + public void executerAction(Personnage perso) { + CaseAbstraite c = perso.getCaseCourante(); + HashMap voisins = c.getVoisins(); + RandomPointCardinal p = new RandomPointCardinal(PointsCardinaux.class); + PointsCardinaux point = null; + do { + point = p.random(); + } while (voisins.get(point) == null); + CaseAbstraite destination = voisins.get(point); + destination.setOccupant(perso); + perso.setCaseCourante(destination); + c.setOccupant(null); + } } diff --git a/src/Comportements/ComportementActionTirerBalon.java b/src/Comportements/ComportementActionTirerBalon.java index 08b311c..7eddc6c 100644 --- a/src/Comportements/ComportementActionTirerBalon.java +++ b/src/Comportements/ComportementActionTirerBalon.java @@ -1,13 +1,11 @@ package Comportements; -import Cases.CaseAbstraite; +import Person.Personnage; public class ComportementActionTirerBalon implements ComportementAction { - @Override - public void executerAction(CaseAbstraite c) { - // TODO Auto-generated method stub - - } + @Override + public void executerAction(Personnage joueur) { + } } diff --git a/src/Comportements/ComportementActionTirerBouleDeNeige.java b/src/Comportements/ComportementActionTirerBouleDeNeige.java index 9cc1d84..6335b5a 100644 --- a/src/Comportements/ComportementActionTirerBouleDeNeige.java +++ b/src/Comportements/ComportementActionTirerBouleDeNeige.java @@ -1,13 +1,11 @@ package Comportements; -import Cases.CaseAbstraite; +import Person.Personnage; public class ComportementActionTirerBouleDeNeige implements ComportementAction { - @Override - public void executerAction(CaseAbstraite c) { - // TODO Auto-generated method stub - - } + @Override + public void executerAction(Personnage joueur) { + } } diff --git a/src/Etats/EtatPersonnageOK.java b/src/Etats/EtatPersonnageOK.java index ae02c9b..7c60fe1 100644 --- a/src/Etats/EtatPersonnageOK.java +++ b/src/Etats/EtatPersonnageOK.java @@ -23,8 +23,8 @@ public class EtatPersonnageOK extends EtatPersonnageAbstrait { @Override public void ExecutionJoueur() { // TODO Auto-generated method stub - Action.executerAction(this.joueur.getCaseCourante()); - } + Action.executerAction(this.joueur); + } @Override public void ConflitJoueur() {