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;
import Cases.CaseAbstraite;
import Fabriques.Personnages.FabriquePersonnagesAbstraite;
import Fabriques.Plateau.FabriquePlateauAbstraite;
import Observateur.Organisation;
@ -20,7 +21,7 @@ public class FabriqueScenarioAbstraite {
return this.fPersonnages.CreerPersonages(o);
}
public void CreerPlateau() {
this.fPlateau.CreerPlateau();
public CaseAbstraite[][] CreerPlateau() {
return this.fPlateau.CreerPlateau();
}
}

View File

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

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) {
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 Observateur.Organisation;
import Person.Personnage;
import Person.eMode;
import java.util.ArrayList;
import java.util.Scanner;
public class SimulationJeu {
ArrayList<Personnage> liste;
ArrayList<Personnage> personnages;
CaseAbstraite[][] plateau;
Organisation o;
FabriqueScenarioAbstraite f;
public SimulationJeu(FabriqueScenarioAbstraite 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();
for(Personnage p: liste) {
for (Personnage p : personnages) {
result.append(p.getNom());
result.append(System.getProperty("line.separator"));
}
return result.toString();
System.out.println(result.toString());
}
public void creationPersonnages() {
o = new Organisation();
liste = f.CreerPersonnages(o);
public void mediationDesConflits() {
// TODO ?
}
public String emmetreUnSonTous() {
StringBuilder result = new StringBuilder();
for (Personnage p: liste) {
result.append(System.getProperty("line.separator"));
}
return result.toString();
public void recupererInformations() {
// TODO récup infos + statistics + maj infos observateur ?
}
public String lancerCombar() {
StringBuilder result = new StringBuilder();
for (Personnage p: liste) {
result.append(System.getProperty("line.separator"));
public void lancerJeu() {
// Todo: positionner les personnages
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
}