Arbitre.
This commit is contained in:
parent
afdc5811c7
commit
6a840fc934
@ -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>
|
@ -1,5 +1,5 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
public enum EAction {
|
public enum EAction {
|
||||||
ChangerCouleurCase, SeDeplacer, TirerBalon, TirerBouleDeNeige
|
ChangerCouleurCase, SeDeplacer, TirerBalon, Rien, TirerBouleDeNeige
|
||||||
}
|
}
|
||||||
|
15
src/Comportements/Rien.java
Normal file
15
src/Comportements/Rien.java
Normal 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) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -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();
|
||||||
|
@ -3,29 +3,30 @@ 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 {
|
||||||
protected ComportementAction parDefaut = new ComportementActionTirerBouleDeNeige();
|
public Arbitre a;
|
||||||
|
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);
|
||||||
list.add(p1);
|
list.add(p1);
|
||||||
PersonnageBattleSnow p2 = new PersonnageBattleSnow("Jo", 100.0, 1.0, 1.0, 2, parDefaut);
|
PersonnageBattleSnow p2 = new PersonnageBattleSnow("Jo", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p2);
|
list.add(p2);
|
||||||
PersonnageBattleSnow p3 = new PersonnageBattleSnow("Max", 100.0, 1.0, 1.0, 2, parDefaut);
|
PersonnageBattleSnow p3 = new PersonnageBattleSnow("Max", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p3);
|
list.add(p3);
|
||||||
PersonnageBattleSnow p4 = new PersonnageBattleSnow("Zac", 100.0, 1.0, 1.0, 2, parDefaut);
|
PersonnageBattleSnow p4 = new PersonnageBattleSnow("Zac", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p4);
|
list.add(p4);
|
||||||
|
|
||||||
this.placement(list, plateau);
|
this.placement(list, plateau);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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() {
|
||||||
|
18
src/Observateur/Arbitre.java
Normal file
18
src/Observateur/Arbitre.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user