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();