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" />
</component>
<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" />
</component>
</project>

View File

@ -1,5 +1,5 @@
package Comportements;
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;
import Cases.CaseAbstraite;
import Observateur.Organisation;
import Person.Personnage;
import java.util.ArrayList;
import java.util.Random;
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) {
Random rand = new Random();

View File

@ -3,17 +3,18 @@ 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 {
public Arbitre a;
protected ComportementAction parDefaut = new ComportementActionTirerBouleDeNeige();
@Override
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
public ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau) {
ArrayList<Personnage> list = new ArrayList<Personnage>();
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 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<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
public ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau) {
ArrayList<Personnage> list = new ArrayList<Personnage>();
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 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<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
public ArrayList<Personnage> CreerPersonages(CaseAbstraite[][] plateau) {
ArrayList<Personnage> list = new ArrayList<Personnage>();
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.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<Personnage> CreerPersonnages(Organisation o, CaseAbstraite[][] plateau) {
return this.fPersonnages.CreerPersonages(o, plateau);
public ArrayList<Personnage> CreerPersonnages(CaseAbstraite[][] plateau) {
return this.fPersonnages.CreerPersonages(plateau);
}
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.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<PointsCardinaux, CaseAbstraite> voisins) {
this.voisins = voisins;
}
@Override
public void update() {
this.ChangerAction(EAction.Rien);
}
}

View File

@ -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<Personnage> personnages;
CaseAbstraite[][] plateau;
Organisation o;
FabriqueScenarioAbstraite f;
InterfaceConsole intefaceC;
Arbitre a;
public SimulationJeu(FabriqueScenarioAbstraite fb) {
f = fb;
personnages = new ArrayList<Personnage>();
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();