diff --git a/.idea/misc.xml b/.idea/misc.xml index 48a8006..1c9cb38 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/src/Comportements/EAction.java b/src/Comportements/EAction.java index bca8ca9..626d0d7 100644 --- a/src/Comportements/EAction.java +++ b/src/Comportements/EAction.java @@ -1,5 +1,5 @@ package Comportements; public enum EAction { - ChangerCouleurCase, SeDeplacer, TirerBalon, TirerBouleDeNeige + ChangerCouleurCase, SeDeplacer, TirerBalon, Rien, TirerBouleDeNeige } diff --git a/src/Comportements/Rien.java b/src/Comportements/Rien.java new file mode 100644 index 0000000..5f09266 --- /dev/null +++ b/src/Comportements/Rien.java @@ -0,0 +1,15 @@ +package Comportements; + +import Cases.CaseAbstraite; +import Objets.ObjetAbstrait; +import Person.Personnage; +import utils.Tuple; + +import java.util.ArrayList; + +public class Rien implements ComportementAction { + @Override + public void executerAction(Personnage joueur, Tuple, ArrayList, ArrayList> t) { + + } +} diff --git a/src/Fabriques/Personnages/FabriquePersonnagesAbstraite.java b/src/Fabriques/Personnages/FabriquePersonnagesAbstraite.java index ad126a3..301eaa0 100644 --- a/src/Fabriques/Personnages/FabriquePersonnagesAbstraite.java +++ b/src/Fabriques/Personnages/FabriquePersonnagesAbstraite.java @@ -1,14 +1,13 @@ package Fabriques.Personnages; import Cases.CaseAbstraite; -import Observateur.Organisation; import Person.Personnage; import java.util.ArrayList; import java.util.Random; abstract public class FabriquePersonnagesAbstraite { - public abstract ArrayList CreerPersonages(Organisation o, CaseAbstraite[][] plateau); + public abstract ArrayList CreerPersonages(CaseAbstraite[][] plateau); protected void placement(ArrayList personnages, CaseAbstraite[][] plateau) { Random rand = new Random(); diff --git a/src/Fabriques/Personnages/FabriquePersonnagesBattleSnow.java b/src/Fabriques/Personnages/FabriquePersonnagesBattleSnow.java index 0c38614..b5d33bc 100644 --- a/src/Fabriques/Personnages/FabriquePersonnagesBattleSnow.java +++ b/src/Fabriques/Personnages/FabriquePersonnagesBattleSnow.java @@ -3,29 +3,30 @@ package Fabriques.Personnages; import Cases.CaseAbstraite; import Comportements.ComportementAction; import Comportements.ComportementActionTirerBouleDeNeige; -import Observateur.Organisation; +import Observateur.Arbitre; import Person.Personnage; import Person.PersonnageBattleSnow; import java.util.ArrayList; public class FabriquePersonnagesBattleSnow extends FabriquePersonnagesAbstraite { - protected ComportementAction parDefaut = new ComportementActionTirerBouleDeNeige(); + public Arbitre a; + protected ComportementAction parDefaut = new ComportementActionTirerBouleDeNeige(); @Override - public ArrayList CreerPersonages(Organisation o, CaseAbstraite[][] plateau) { - ArrayList list = new ArrayList(); + public ArrayList CreerPersonages(CaseAbstraite[][] plateau) { + ArrayList list = new ArrayList(); PersonnageBattleSnow p1 = new PersonnageBattleSnow("Bob", 100.0, 1.0, 1.0, 2, parDefaut); list.add(p1); PersonnageBattleSnow p2 = new PersonnageBattleSnow("Jo", 100.0, 1.0, 1.0, 2, parDefaut); list.add(p2); - PersonnageBattleSnow p3 = new PersonnageBattleSnow("Max", 100.0, 1.0, 1.0, 2, parDefaut); - list.add(p3); - PersonnageBattleSnow p4 = new PersonnageBattleSnow("Zac", 100.0, 1.0, 1.0, 2, parDefaut); - list.add(p4); + PersonnageBattleSnow p3 = new PersonnageBattleSnow("Max", 100.0, 1.0, 1.0, 2, parDefaut); + list.add(p3); + PersonnageBattleSnow p4 = new PersonnageBattleSnow("Zac", 100.0, 1.0, 1.0, 2, parDefaut); + list.add(p4); - this.placement(list, plateau); - return list; + this.placement(list, plateau); + return list; } } diff --git a/src/Fabriques/Personnages/FabriquePersonnagesBattleZone.java b/src/Fabriques/Personnages/FabriquePersonnagesBattleZone.java index 5139aa0..a8a4f32 100644 --- a/src/Fabriques/Personnages/FabriquePersonnagesBattleZone.java +++ b/src/Fabriques/Personnages/FabriquePersonnagesBattleZone.java @@ -3,7 +3,6 @@ package Fabriques.Personnages; import Cases.CaseAbstraite; import Comportements.ComportementAction; import Comportements.ComportementActionChangerCouleurCase; -import Observateur.Organisation; import Person.Personnage; import Person.PersonnageBattleZone; @@ -13,7 +12,7 @@ public class FabriquePersonnagesBattleZone extends FabriquePersonnagesAbstraite protected ComportementAction parDefaut = new ComportementActionChangerCouleurCase(); @Override - public ArrayList CreerPersonages(Organisation o, CaseAbstraite[][] plateau) { + public ArrayList CreerPersonages(CaseAbstraite[][] plateau) { ArrayList list = new ArrayList(); PersonnageBattleZone p1 = new PersonnageBattleZone("Bob", 100.0, 1.0, 1.0, 2, parDefaut); diff --git a/src/Fabriques/Personnages/FabriquePersonnagesFootball.java b/src/Fabriques/Personnages/FabriquePersonnagesFootball.java index 35d97a4..5b30ea6 100644 --- a/src/Fabriques/Personnages/FabriquePersonnagesFootball.java +++ b/src/Fabriques/Personnages/FabriquePersonnagesFootball.java @@ -5,17 +5,18 @@ import Comportements.ComportementAction; import Comportements.ComportementActionTirerBalon; import Composition.EquipeDeFoot; import Composition.PersonnagesAbstraits; -import Observateur.Organisation; +import Observateur.Arbitre; import Person.Personnage; import Person.PersonnageFootball; import java.util.ArrayList; public class FabriquePersonnagesFootball extends FabriquePersonnagesAbstraite { + public Arbitre a; ComportementAction parDefaut = new ComportementActionTirerBalon(); @Override - public ArrayList CreerPersonages(Organisation o, CaseAbstraite[][] plateau) { + public ArrayList CreerPersonages(CaseAbstraite[][] plateau) { ArrayList list = new ArrayList(); PersonnageFootball p1 = new PersonnageFootball("Bob", 100.0, 1.0, 1.0, 2, parDefaut); diff --git a/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java b/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java index 3f44ad2..7e17f2c 100644 --- a/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java +++ b/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java @@ -5,7 +5,6 @@ import Fabriques.Objets.FabriqueObjetAbstraite; import Fabriques.Personnages.FabriquePersonnagesAbstraite; import Fabriques.Plateau.FabriquePlateauAbstraite; import Objets.ObjetAbstrait; -import Observateur.Organisation; import Person.Personnage; import java.util.ArrayList; @@ -21,8 +20,8 @@ public abstract class FabriqueScenarioAbstraite { this.fObjs = fObjs; } - public ArrayList CreerPersonnages(Organisation o, CaseAbstraite[][] plateau) { - return this.fPersonnages.CreerPersonages(o, plateau); + public ArrayList CreerPersonnages(CaseAbstraite[][] plateau) { + return this.fPersonnages.CreerPersonages(plateau); } public CaseAbstraite[][] CreerPlateau() { diff --git a/src/Observateur/Arbitre.java b/src/Observateur/Arbitre.java new file mode 100644 index 0000000..a99bf60 --- /dev/null +++ b/src/Observateur/Arbitre.java @@ -0,0 +1,18 @@ +package Observateur; + +public class Arbitre extends SujetObserveAbstrait { + + int iter = 10; + + @Override + public void update() { + iter--; + if (iter == 0) { + System.out.println("STOP!"); + for (ObservateurAbstrait o : liste) { + o.update(); + } + iter = 10; + } + } +} diff --git a/src/Observateur/Organisation.java b/src/Observateur/Organisation.java deleted file mode 100644 index 1887412..0000000 --- a/src/Observateur/Organisation.java +++ /dev/null @@ -1,19 +0,0 @@ -package Observateur; - - -public class Organisation extends SujetObserveAbstrait { - protected Organisation parent; - - public Organisation() { - this.parent = null; - } - - public Organisation(Organisation parent) { - this.parent = parent; - } - - @Override - public void update() { - - } -} diff --git a/src/Person/Personnage.java b/src/Person/Personnage.java index bdb1260..363ec17 100644 --- a/src/Person/Personnage.java +++ b/src/Person/Personnage.java @@ -9,13 +9,14 @@ import Etats.EtatPersonnageAbstrait; import Etats.EtatPersonnageKO; import Etats.EtatPersonnageOK; import Objets.ObjetAbstrait; +import Observateur.ObservateurAbstrait; import utils.Tuple; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -public class Personnage extends PersonnagesAbstraits { +public class Personnage extends PersonnagesAbstraits implements ObservateurAbstrait { protected CaseAbstraite caseCourante; @@ -151,6 +152,9 @@ public class Personnage extends PersonnagesAbstraits { case TirerBouleDeNeige: Action = new ComportementActionTirerBouleDeNeige(); break; + case Rien: + Action = new ComportementActionTirerBouleDeNeige(); + break; default: break; @@ -233,4 +237,9 @@ public class Personnage extends PersonnagesAbstraits { public void setVoisins(HashMap voisins) { this.voisins = voisins; } + + @Override + public void update() { + this.ChangerAction(EAction.Rien); + } } diff --git a/src/SimulationJeu.java b/src/SimulationJeu.java index 89050ef..9e8754a 100644 --- a/src/SimulationJeu.java +++ b/src/SimulationJeu.java @@ -1,6 +1,6 @@ import Cases.CaseAbstraite; import Fabriques.Scenario.FabriqueScenarioAbstraite; -import Observateur.Organisation; +import Observateur.Arbitre; import Person.Personnage; import utils.InterfaceConsole; @@ -11,23 +11,22 @@ import java.util.Scanner; public class SimulationJeu { ArrayList personnages; CaseAbstraite[][] plateau; - Organisation o; FabriqueScenarioAbstraite f; InterfaceConsole intefaceC; + Arbitre a; public SimulationJeu(FabriqueScenarioAbstraite fb) { f = fb; personnages = new ArrayList(); plateau = f.CreerPlateau(); - // L'organisation dans les personnages. On aura une orga spécifique pour chaque - o = new Organisation(); - personnages = f.CreerPersonnages(o, plateau); + personnages = f.CreerPersonnages(plateau); f.creerObjets(plateau); intefaceC = new InterfaceConsole(plateau); + a = new Arbitre(); } public void afficheTous() { @@ -42,10 +41,14 @@ public class SimulationJeu { } public void lancerJeu() { + for (Personnage p : personnages) { + a.attach(p); + } boolean continuer = true; afficheTous(); while (continuer) { + a.update(); for (Personnage p : personnages) { p.Execution(p.AnalyseSituation()); recupererInformations();