Préparation du simulateur.

This commit is contained in:
aminecmi 2015-01-07 10:41:16 +01:00
parent 44db9873c3
commit 72ee8d1655
5 changed files with 72 additions and 32 deletions

View File

@ -1,5 +1,6 @@
package Fabriques.Scenario; package Fabriques.Scenario;
import Cases.CaseAbstraite;
import Fabriques.Personnages.FabriquePersonnagesAbstraite; import Fabriques.Personnages.FabriquePersonnagesAbstraite;
import Fabriques.Plateau.FabriquePlateauAbstraite; import Fabriques.Plateau.FabriquePlateauAbstraite;
import Observateur.Organisation; import Observateur.Organisation;
@ -20,7 +21,7 @@ public class FabriqueScenarioAbstraite {
return this.fPersonnages.CreerPersonages(o); return this.fPersonnages.CreerPersonages(o);
} }
public void CreerPlateau() { public CaseAbstraite[][] CreerPlateau() {
this.fPlateau.CreerPlateau(); return this.fPlateau.CreerPlateau();
} }
} }

View File

@ -1,16 +1,10 @@
import Fabriques.Personnages.FabriquePersonnagesBattleZone; import Fabriques.Personnages.FabriquePersonnagesBattleZone;
import Fabriques.Plateau.FabriquePlateauBattleZone; import Fabriques.Plateau.FabriquePlateauBattleZone;
import Fabriques.Scenario.FabriqueScenarioMoyenAge; import Fabriques.Scenario.FabriqueScenarioMoyenAge;
import Person.eMode;
public class Main { public class Main {
public static void main(String[] args){ public static void main(String[] args){
SimulationJeu s = new SimulationJeu(new FabriqueScenarioMoyenAge(new FabriquePlateauBattleZone(), new FabriquePersonnagesBattleZone())); SimulationJeu s = new SimulationJeu(new FabriqueScenarioMoyenAge(new FabriquePlateauBattleZone(), new FabriquePersonnagesBattleZone()));
s.creationPersonnages(); s.lancerJeu();
System.out.println(s.afficheTous());
System.out.println(s.emmetreUnSonTous());
System.out.println(s.lancerCombar());
s.changerEtat(eMode.GUERRE);
System.out.println(s.lancerCombar());
} }
} }

View File

@ -0,0 +1,13 @@
package Objets;
import Cases.CaseAbstraite;
public abstract class ObjetAbstrait {
CaseAbstraite caseAbstraite;
String nom;
public ObjetAbstrait(String nom, CaseAbstraite c) {
this.caseAbstraite = c;
this.nom = nom;
}
}

View File

@ -57,4 +57,13 @@ public class Personnage extends PersonnagesAbstraits implements ObservateurAbstr
public void setCaseCourante(CaseAbstraite caseCourante) { public void setCaseCourante(CaseAbstraite caseCourante) {
this.caseCourante = caseCourante; this.caseCourante = caseCourante;
} }
public void AnalyseSituation() {
// Todo
}
public void Execution() {
// Todo
}
} }

View File

@ -1,51 +1,74 @@
import Cases.CaseAbstraite;
import Fabriques.Scenario.FabriqueScenarioAbstraite; import Fabriques.Scenario.FabriqueScenarioAbstraite;
import Observateur.Organisation; import Observateur.Organisation;
import Person.Personnage; import Person.Personnage;
import Person.eMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Scanner;
public class SimulationJeu { public class SimulationJeu {
ArrayList<Personnage> liste; ArrayList<Personnage> personnages;
CaseAbstraite[][] plateau;
Organisation o; Organisation o;
FabriqueScenarioAbstraite f; FabriqueScenarioAbstraite f;
public SimulationJeu(FabriqueScenarioAbstraite fb) { public SimulationJeu(FabriqueScenarioAbstraite fb) {
f = fb; f = fb;
liste = new ArrayList<Personnage>(); 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);
} }
public String afficheTous() { public void afficheTous() {
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
for(Personnage p: liste) { for (Personnage p : personnages) {
result.append(p.getNom()); result.append(p.getNom());
result.append(System.getProperty("line.separator")); result.append(System.getProperty("line.separator"));
} }
return result.toString(); System.out.println(result.toString());
} }
public void creationPersonnages() { public void mediationDesConflits() {
o = new Organisation(); // TODO ?
liste = f.CreerPersonnages(o);
} }
public String emmetreUnSonTous() { public void recupererInformations() {
StringBuilder result = new StringBuilder(); // TODO récup infos + statistics + maj infos observateur ?
for (Personnage p: liste) {
result.append(System.getProperty("line.separator"));
}
return result.toString();
} }
public String lancerCombar() { public void lancerJeu() {
StringBuilder result = new StringBuilder(); // Todo: positionner les personnages
for (Personnage p: liste) {
result.append(System.getProperty("line.separator")); boolean continuer = true;
while (continuer) {
// Todo propagation des informations
// Todo Propagation des ordres
for (Personnage p : personnages) {
p.AnalyseSituation();
p.Execution();
mediationDesConflits(); // utiliser le pattern avec l'historique pour les actions. On pourra faire un retour arrière si conflit + réexecturer
miseAJour();
recupererInformations();
} }
return result.toString(); afficheTous();
// bloquer le tour jusqu'a toucher une touche du clavier.
Scanner s = new Scanner(System.in);
s.nextLine();
} }
public void changerEtat(eMode etat) {
this.o.setModeFonctionnement(etat);
} }
private void miseAJour() {
// Todo
}
// Todo Save
// Todo import
} }