This commit is contained in:
aminecmi 2015-02-07 11:35:29 +01:00
parent afdc5811c7
commit 6a840fc934
12 changed files with 71 additions and 46 deletions

View File

@ -4,7 +4,7 @@
<entry_points version="2.0" /> <entry_points version="2.0" />
</component> </component>
<component name="IdProvider" IDEtalkID="5EBAA9F33699B0593DE250C306D65C2A" /> <component name="IdProvider" IDEtalkID="5EBAA9F33699B0593DE250C306D65C2A" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@ -1,5 +1,5 @@
package Comportements; package Comportements;
public enum EAction { public enum EAction {
ChangerCouleurCase, SeDeplacer, TirerBalon, TirerBouleDeNeige ChangerCouleurCase, SeDeplacer, TirerBalon, Rien, TirerBouleDeNeige
} }

View File

@ -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<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
}
}

View File

@ -1,14 +1,13 @@
package Fabriques.Personnages; package Fabriques.Personnages;
import Cases.CaseAbstraite; import Cases.CaseAbstraite;
import Observateur.Organisation;
import Person.Personnage; import Person.Personnage;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Random; import java.util.Random;
abstract public class FabriquePersonnagesAbstraite { abstract public class FabriquePersonnagesAbstraite {
public abstract ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau); public abstract ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau);
protected void placement(ArrayList<Personnage> personnages, CaseAbstraite[][] plateau) { protected void placement(ArrayList<Personnage> personnages, CaseAbstraite[][] plateau) {
Random rand = new Random(); Random rand = new Random();

View File

@ -3,17 +3,18 @@ package Fabriques.Personnages;
import Cases.CaseAbstraite; import Cases.CaseAbstraite;
import Comportements.ComportementAction; import Comportements.ComportementAction;
import Comportements.ComportementActionTirerBouleDeNeige; import Comportements.ComportementActionTirerBouleDeNeige;
import Observateur.Organisation; import Observateur.Arbitre;
import Person.Personnage; import Person.Personnage;
import Person.PersonnageBattleSnow; import Person.PersonnageBattleSnow;
import java.util.ArrayList; import java.util.ArrayList;
public class FabriquePersonnagesBattleSnow extends FabriquePersonnagesAbstraite { public class FabriquePersonnagesBattleSnow extends FabriquePersonnagesAbstraite {
public Arbitre a;
protected ComportementAction parDefaut = new ComportementActionTirerBouleDeNeige(); protected ComportementAction parDefaut = new ComportementActionTirerBouleDeNeige();
@Override @Override
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) { public ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau) {
ArrayList<Personnage> list = new ArrayList<Personnage>(); ArrayList<Personnage> list = new ArrayList<Personnage>();
PersonnageBattleSnow p1 = new PersonnageBattleSnow("Bob", 100.0, 1.0, 1.0, 2, parDefaut); PersonnageBattleSnow p1 = new PersonnageBattleSnow("Bob", 100.0, 1.0, 1.0, 2, parDefaut);

View File

@ -3,7 +3,6 @@ package Fabriques.Personnages;
import Cases.CaseAbstraite; import Cases.CaseAbstraite;
import Comportements.ComportementAction; import Comportements.ComportementAction;
import Comportements.ComportementActionChangerCouleurCase; import Comportements.ComportementActionChangerCouleurCase;
import Observateur.Organisation;
import Person.Personnage; import Person.Personnage;
import Person.PersonnageBattleZone; import Person.PersonnageBattleZone;
@ -13,7 +12,7 @@ public class FabriquePersonnagesBattleZone extends FabriquePersonnagesAbstraite
protected ComportementAction parDefaut = new ComportementActionChangerCouleurCase(); protected ComportementAction parDefaut = new ComportementActionChangerCouleurCase();
@Override @Override
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) { public ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau) {
ArrayList<Personnage> list = new ArrayList<Personnage>(); ArrayList<Personnage> list = new ArrayList<Personnage>();
PersonnageBattleZone p1 = new PersonnageBattleZone("Bob", 100.0, 1.0, 1.0, 2, parDefaut); PersonnageBattleZone p1 = new PersonnageBattleZone("Bob", 100.0, 1.0, 1.0, 2, parDefaut);

View File

@ -5,17 +5,18 @@ import Comportements.ComportementAction;
import Comportements.ComportementActionTirerBalon; import Comportements.ComportementActionTirerBalon;
import Composition.EquipeDeFoot; import Composition.EquipeDeFoot;
import Composition.PersonnagesAbstraits; import Composition.PersonnagesAbstraits;
import Observateur.Organisation; import Observateur.Arbitre;
import Person.Personnage; import Person.Personnage;
import Person.PersonnageFootball; import Person.PersonnageFootball;
import java.util.ArrayList; import java.util.ArrayList;
public class FabriquePersonnagesFootball extends FabriquePersonnagesAbstraite { public class FabriquePersonnagesFootball extends FabriquePersonnagesAbstraite {
public Arbitre a;
ComportementAction parDefaut = new ComportementActionTirerBalon(); ComportementAction parDefaut = new ComportementActionTirerBalon();
@Override @Override
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) { public ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau) {
ArrayList<Personnage> list = new ArrayList<Personnage>(); ArrayList<Personnage> list = new ArrayList<Personnage>();
PersonnageFootball p1 = new PersonnageFootball("Bob", 100.0, 1.0, 1.0, 2, parDefaut); PersonnageFootball p1 = new PersonnageFootball("Bob", 100.0, 1.0, 1.0, 2, parDefaut);

View File

@ -5,7 +5,6 @@ import Fabriques.Objets.FabriqueObjetAbstraite;
import Fabriques.Personnages.FabriquePersonnagesAbstraite; import Fabriques.Personnages.FabriquePersonnagesAbstraite;
import Fabriques.Plateau.FabriquePlateauAbstraite; import Fabriques.Plateau.FabriquePlateauAbstraite;
import Objets.ObjetAbstrait; import Objets.ObjetAbstrait;
import Observateur.Organisation;
import Person.Personnage; import Person.Personnage;
import java.util.ArrayList; import java.util.ArrayList;
@ -21,8 +20,8 @@ public abstract class FabriqueScenarioAbstraite {
this.fObjs = fObjs; this.fObjs = fObjs;
} }
public ArrayList<Personnage> CreerPersonnages(Organisation o, CaseAbstraite[][] plateau) { public ArrayList<Personnage> CreerPersonnages(CaseAbstraite[][] plateau) {
return this.fPersonnages.CreerPersonages(o, plateau); return this.fPersonnages.CreerPersonages(plateau);
} }
public CaseAbstraite[][] CreerPlateau() { public CaseAbstraite[][] CreerPlateau() {

View File

@ -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;
}
}
}

View File

@ -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() {
}
}

View File

@ -9,13 +9,14 @@ import Etats.EtatPersonnageAbstrait;
import Etats.EtatPersonnageKO; import Etats.EtatPersonnageKO;
import Etats.EtatPersonnageOK; import Etats.EtatPersonnageOK;
import Objets.ObjetAbstrait; import Objets.ObjetAbstrait;
import Observateur.ObservateurAbstrait;
import utils.Tuple; import utils.Tuple;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
public class Personnage extends PersonnagesAbstraits { public class Personnage extends PersonnagesAbstraits implements ObservateurAbstrait {
protected CaseAbstraite caseCourante; protected CaseAbstraite caseCourante;
@ -151,6 +152,9 @@ public class Personnage extends PersonnagesAbstraits {
case TirerBouleDeNeige: case TirerBouleDeNeige:
Action = new ComportementActionTirerBouleDeNeige(); Action = new ComportementActionTirerBouleDeNeige();
break; break;
case Rien:
Action = new ComportementActionTirerBouleDeNeige();
break;
default: default:
break; break;
@ -233,4 +237,9 @@ public class Personnage extends PersonnagesAbstraits {
public void setVoisins(HashMap<PointsCardinaux, CaseAbstraite> voisins) { public void setVoisins(HashMap<PointsCardinaux, CaseAbstraite> voisins) {
this.voisins = voisins; this.voisins = voisins;
} }
@Override
public void update() {
this.ChangerAction(EAction.Rien);
}
} }

View File

@ -1,6 +1,6 @@
import Cases.CaseAbstraite; import Cases.CaseAbstraite;
import Fabriques.Scenario.FabriqueScenarioAbstraite; import Fabriques.Scenario.FabriqueScenarioAbstraite;
import Observateur.Organisation; import Observateur.Arbitre;
import Person.Personnage; import Person.Personnage;
import utils.InterfaceConsole; import utils.InterfaceConsole;
@ -11,23 +11,22 @@ import java.util.Scanner;
public class SimulationJeu { public class SimulationJeu {
ArrayList<Personnage> personnages; ArrayList<Personnage> personnages;
CaseAbstraite[][] plateau; CaseAbstraite[][] plateau;
Organisation o;
FabriqueScenarioAbstraite f; FabriqueScenarioAbstraite f;
InterfaceConsole intefaceC; InterfaceConsole intefaceC;
Arbitre a;
public SimulationJeu(FabriqueScenarioAbstraite fb) { public SimulationJeu(FabriqueScenarioAbstraite fb) {
f = fb; f = fb;
personnages = new ArrayList<Personnage>(); personnages = new ArrayList<Personnage>();
plateau = f.CreerPlateau(); plateau = f.CreerPlateau();
// L'organisation dans les personnages. On aura une orga spécifique pour chaque personnages = f.CreerPersonnages(plateau);
o = new Organisation();
personnages = f.CreerPersonnages(o, plateau);
f.creerObjets(plateau); f.creerObjets(plateau);
intefaceC = new InterfaceConsole(plateau); intefaceC = new InterfaceConsole(plateau);
a = new Arbitre();
} }
public void afficheTous() { public void afficheTous() {
@ -42,10 +41,14 @@ public class SimulationJeu {
} }
public void lancerJeu() { public void lancerJeu() {
for (Personnage p : personnages) {
a.attach(p);
}
boolean continuer = true; boolean continuer = true;
afficheTous(); afficheTous();
while (continuer) { while (continuer) {
a.update();
for (Personnage p : personnages) { for (Personnage p : personnages) {
p.Execution(p.AnalyseSituation()); p.Execution(p.AnalyseSituation());
recupererInformations(); recupererInformations();