diff --git a/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java b/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java index ad7dbab..8f07392 100644 --- a/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java +++ b/src/Fabriques/Scenario/FabriqueScenarioAbstraite.java @@ -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(); } } diff --git a/src/Main.java b/src/Main.java index a340a9a..a44f3a6 100644 --- a/src/Main.java +++ b/src/Main.java @@ -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(); } } diff --git a/src/Objets/ObjetAbstrait.java b/src/Objets/ObjetAbstrait.java new file mode 100644 index 0000000..7556856 --- /dev/null +++ b/src/Objets/ObjetAbstrait.java @@ -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; + } +} diff --git a/src/Person/Personnage.java b/src/Person/Personnage.java index 2862bf8..6000fd9 100644 --- a/src/Person/Personnage.java +++ b/src/Person/Personnage.java @@ -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 + + } } diff --git a/src/SimulationJeu.java b/src/SimulationJeu.java index d134b62..13eafc1 100644 --- a/src/SimulationJeu.java +++ b/src/SimulationJeu.java @@ -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 liste; + ArrayList personnages; + CaseAbstraite[][] plateau; Organisation o; FabriqueScenarioAbstraite f; public SimulationJeu(FabriqueScenarioAbstraite fb) { f = fb; - liste = new ArrayList(); + personnages = new ArrayList(); + 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")); + public void recupererInformations() { + // TODO récup infos + statistics + maj infos observateur ? + } + + 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(); + } + afficheTous(); + + // bloquer le tour jusqu'a toucher une touche du clavier. + Scanner s = new Scanner(System.in); + s.nextLine(); } - return result.toString(); + } - public String lancerCombar() { - StringBuilder result = new StringBuilder(); - for (Personnage p: liste) { - result.append(System.getProperty("line.separator")); - } - return result.toString(); + private void miseAJour() { + // Todo + } - public void changerEtat(eMode etat) { - this.o.setModeFonctionnement(etat); - } + // Todo Save + + // Todo import }