feat: omg le prototype fonctionne, un peu broken mais tkt

This commit is contained in:
Laurent Fainsin 2021-12-10 15:19:47 +01:00
parent 5b479839b2
commit 298be2b9ef
10 changed files with 3439 additions and 2619 deletions

View file

@ -81,7 +81,7 @@
"lieu_in": "Enigme",
"lieu_out": "Echec",
"ouvert": true,
"visible": tentatives == 0,
"visible": tentative == 0,
"obligatoire": true,
"connaissances": [],
"objets_recus": [],

View file

@ -10,10 +10,10 @@ public class Action {
public Action(
Condition visible,
Condition finInterraction,
List<Connaissance> connaissances,
List<Objet> objetsRecus,
List<Objet> objetsConso,
Condition finInterraction,
List<Description> descriptions) {
this.visible = visible;
this.connaissances = connaissances;

View file

@ -1,6 +1,7 @@
import java.util.List;
public class Chemin {
String nom;
Lieu lieuIn;
Lieu lieuOut;
Condition ouvert;
@ -12,6 +13,7 @@ public class Chemin {
List<Description> descriptions;
public Chemin(
String nom,
Lieu lieuIn,
Lieu lieuOut,
Condition ouvert,
@ -21,6 +23,7 @@ public class Chemin {
List<Objet> objetsRecus,
List<Objet> objetsConso,
List<Description> descriptions) {
this.nom = nom;
this.lieuIn = lieuIn;
this.lieuOut = lieuOut;
this.ouvert = ouvert;

View file

@ -25,6 +25,11 @@ public class Jeu {
this.transformations = transformations;
}
public static void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
void jouer() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
@ -39,7 +44,8 @@ public class Jeu {
while (!lieu.fin.evaluer()) {
boolean recommencer = false;
System.out.println("\n\n\n\n\n\n\n\n\n\nLieu : " + lieu + "\n");
clearScreen();
System.out.println("Lieu : " + lieu + "\n");
System.out.println(Jeu.explorateur);
for (Personne p : lieu.personnes) {
@ -100,7 +106,8 @@ public class Jeu {
} else {
Personne p = personnes_choix.get(choix - chemins_choix.size());
System.out.println("\n\n\n\n\n\n\n\n\n\nLieu : " + lieu + "\n");
clearScreen();
System.out.println("Lieu : " + lieu + "\n");
System.out.println(Jeu.explorateur);
System.out.println(p + " :");

View file

@ -0,0 +1,724 @@
import java.util.List;
import java.util.ArrayList;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Prototype {
public static void main(String[] args) {
// "Objets"
List<Objet> jeu_objets = new ArrayList<>();
List<Description> objet_tentative_descriptions = new ArrayList<>();
List<ConditionEt> objet_tentative_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> objet_tentative_description_1_conditions_TEST_list = new ArrayList<>();
objet_tentative_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
objet_tentative_description_1_conditions_ET_list.add(
new ConditionEt(objet_tentative_description_1_conditions_TEST_list)
);
Condition objet_tentative_description_1_condition = new Condition(objet_tentative_description_1_conditions_ET_list);
objet_tentative_descriptions.add(
new Description(
"permet repondre une question du sphinx",
objet_tentative_description_1_condition
)
);
List<ConditionEt> objet_visible_tentative_conditions_ET_list = new ArrayList<>();
List<ConditionTest> objet_visible_tentative_conditions_TEST_list = new ArrayList<>();
objet_visible_tentative_conditions_TEST_list.add(
new ConditionBoolean(true)
);
objet_visible_tentative_conditions_ET_list.add(
new ConditionEt(objet_visible_tentative_conditions_TEST_list)
);
Condition objet_visible_tentative_condition = new Condition(objet_visible_tentative_conditions_ET_list);
Objet objet_tentative = new Objet(
"tentative",
1,
objet_visible_tentative_condition,
objet_tentative_descriptions
);
jeu_objets.add(objet_tentative);
// "Connaissances"
List<Connaissance> jeu_connaissances = new ArrayList<>();
List<Description> connaissance_Reussite_descriptions = new ArrayList<>();
List<ConditionEt> connaissance_Reussite_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> connaissance_Reussite_description_1_conditions_TEST_list = new ArrayList<>();
connaissance_Reussite_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
connaissance_Reussite_description_1_conditions_ET_list.add(
new ConditionEt(connaissance_Reussite_description_1_conditions_TEST_list)
);
Condition connaissance_Reussite_description_1_condition = new Condition(connaissance_Reussite_description_1_conditions_ET_list);
connaissance_Reussite_descriptions.add(
new Description(
"Permet de se casser de la",
connaissance_Reussite_description_1_condition
)
);
List<ConditionEt> connaissance_visible_Reussite_conditions_ET_list = new ArrayList<>();
List<ConditionTest> connaissance_visible_Reussite_conditions_TEST_list = new ArrayList<>();
connaissance_visible_Reussite_conditions_TEST_list.add(
new ConditionBoolean(true)
);
connaissance_visible_Reussite_conditions_ET_list.add(
new ConditionEt(connaissance_visible_Reussite_conditions_TEST_list)
);
Condition connaissance_visible_Reussite_condition = new Condition(connaissance_visible_Reussite_conditions_ET_list);
Connaissance connaissance_Reussite = new Connaissance(
"Reussite",
connaissance_visible_Reussite_condition,
connaissance_Reussite_descriptions
);
jeu_connaissances.add(connaissance_Reussite);
// "Transformations"
List<Transformation> jeu_transformations = new ArrayList<>();
// "Explorateur"
List<Objet> explorateur_inventaire = new ArrayList<>();
explorateur_inventaire.add(objet_tentative);
explorateur_inventaire.add(objet_tentative);
explorateur_inventaire.add(objet_tentative);
List<Connaissance> explorateur_connaissances = new ArrayList<>();
Jeu.explorateur = new Explorateur(
3,
explorateur_connaissances,
explorateur_inventaire
);
// "Personnes"
List<Personne> jeu_personnes = new ArrayList<>();
List<ConditionEt> personne_visible_Sphinx_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_visible_Sphinx_1_conditions_TEST_list = new ArrayList<>();
personne_visible_Sphinx_1_conditions_TEST_list.add(
new ConditionConnaissance(
connaissance_Reussite,
true
)
);
personne_visible_Sphinx_1_conditions_TEST_list.add(
new ConditionObjet(
objet_tentative,
">",
0
)
);
personne_visible_Sphinx_1_conditions_ET_list.add(
new ConditionEt(personne_visible_Sphinx_1_conditions_TEST_list)
);
Condition personne_visible_Sphinx_1_condition = new Condition(personne_visible_Sphinx_1_conditions_ET_list);
List<ConditionEt> personne_obligatoire_Sphinx_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_obligatoire_Sphinx_1_conditions_TEST_list = new ArrayList<>();
personne_obligatoire_Sphinx_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_obligatoire_Sphinx_1_conditions_ET_list.add(
new ConditionEt(personne_obligatoire_Sphinx_1_conditions_TEST_list)
);
Condition personne_obligatoire_Sphinx_1_condition = new Condition(personne_obligatoire_Sphinx_1_conditions_ET_list);
List<Interaction> personne_Sphinx_1_interactions = new ArrayList<>();
List<ConditionEt> personne_Sphinx_1_interaction_visible_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_visible_1_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_visible_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_visible_1_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_visible_1_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_visible_1_condition = new Condition(personne_Sphinx_1_interaction_visible_1_conditions_ET_list);
List<Action> personne_Sphinx_1_interaction_1_actions = new ArrayList<>();
List<ConditionEt> personne_Sphinx_1_interaction_1_action_visible_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_1_action_visible_1_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_visible_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_1_action_visible_1_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_1_action_visible_1_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_1_action_visible_1_condition = new Condition(personne_Sphinx_1_interaction_1_action_visible_1_conditions_ET_list);
List<ConditionEt> personne_Sphinx_1_interaction_1_action_fin_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_1_action_fin_1_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_fin_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_1_action_fin_1_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_1_action_fin_1_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_1_action_fin_1_condition = new Condition(personne_Sphinx_1_interaction_1_action_fin_1_conditions_ET_list);
List<Description> personne_Sphinx_1_interaction_1_action_1_descriptions = new ArrayList<>();
List<ConditionEt> personne_Sphinx_1_interaction_1_action_1_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_1_action_1_description_1_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_1_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_1_action_1_description_1_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_1_action_1_description_1_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_1_action_1_description_1_condition = new Condition(personne_Sphinx_1_interaction_1_action_1_description_1_conditions_ET_list);
personne_Sphinx_1_interaction_1_action_1_descriptions.add(
new Description(
"la bonne reponse",
personne_Sphinx_1_interaction_1_action_1_description_1_condition
)
);
List<Connaissance> personne_Sphinx_1_interaction_1_action_1_connaissances = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_1_connaissances.add(connaissance_Reussite);
List<Objet> personne_Sphinx_1_interaction_1_action_1_objets_conso = new ArrayList<>();
List<Objet> personne_Sphinx_1_interaction_1_action_1_objets_recus = new ArrayList<>();
personne_Sphinx_1_interaction_1_actions.add(
new Action(
personne_Sphinx_1_interaction_1_action_visible_1_condition,
personne_Sphinx_1_interaction_1_action_fin_1_condition,
personne_Sphinx_1_interaction_1_action_1_connaissances,
personne_Sphinx_1_interaction_1_action_1_objets_conso,
personne_Sphinx_1_interaction_1_action_1_objets_recus,
personne_Sphinx_1_interaction_1_action_1_descriptions
)
);
List<ConditionEt> personne_Sphinx_1_interaction_1_action_visible_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_1_action_visible_2_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_visible_2_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_1_action_visible_2_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_1_action_visible_2_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_1_action_visible_2_condition = new Condition(personne_Sphinx_1_interaction_1_action_visible_2_conditions_ET_list);
List<ConditionEt> personne_Sphinx_1_interaction_1_action_fin_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_1_action_fin_2_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_fin_2_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_1_action_fin_2_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_1_action_fin_2_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_1_action_fin_2_condition = new Condition(personne_Sphinx_1_interaction_1_action_fin_2_conditions_ET_list);
List<Description> personne_Sphinx_1_interaction_1_action_2_descriptions = new ArrayList<>();
List<ConditionEt> personne_Sphinx_1_interaction_1_action_2_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> personne_Sphinx_1_interaction_1_action_2_description_1_conditions_TEST_list = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_2_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
personne_Sphinx_1_interaction_1_action_2_description_1_conditions_ET_list.add(
new ConditionEt(personne_Sphinx_1_interaction_1_action_2_description_1_conditions_TEST_list)
);
Condition personne_Sphinx_1_interaction_1_action_2_description_1_condition = new Condition(personne_Sphinx_1_interaction_1_action_2_description_1_conditions_ET_list);
personne_Sphinx_1_interaction_1_action_2_descriptions.add(
new Description(
"la mauvaise reponse",
personne_Sphinx_1_interaction_1_action_2_description_1_condition
)
);
List<Connaissance> personne_Sphinx_1_interaction_1_action_2_connaissances = new ArrayList<>();
List<Objet> personne_Sphinx_1_interaction_1_action_2_objets_conso = new ArrayList<>();
personne_Sphinx_1_interaction_1_action_2_objets_conso.add(objet_tentative);
List<Objet> personne_Sphinx_1_interaction_1_action_2_objets_recus = new ArrayList<>();
personne_Sphinx_1_interaction_1_actions.add(
new Action(
personne_Sphinx_1_interaction_1_action_visible_2_condition,
personne_Sphinx_1_interaction_1_action_fin_2_condition,
personne_Sphinx_1_interaction_1_action_2_connaissances,
personne_Sphinx_1_interaction_1_action_2_objets_recus,
personne_Sphinx_1_interaction_1_action_2_objets_conso,
personne_Sphinx_1_interaction_1_action_2_descriptions
)
);
List<Connaissance> personne_Sphinx_1_interaction_1_connaissances = new ArrayList<>();
List<Objet> personne_Sphinx_1_interaction_1_objets_conso = new ArrayList<>();
List<Objet> personne_Sphinx_1_interaction_1_objets_recus = new ArrayList<>();
personne_Sphinx_1_interactions.add(
new Interaction(
personne_Sphinx_1_interaction_visible_1_condition,
personne_Sphinx_1_interaction_1_connaissances,
personne_Sphinx_1_interaction_1_objets_conso,
personne_Sphinx_1_interaction_1_objets_recus,
personne_Sphinx_1_interaction_1_actions
)
);
Personne personne_Sphinx = new Personne(
"Sphinx",
personne_visible_Sphinx_1_condition,
personne_obligatoire_Sphinx_1_condition,
personne_Sphinx_1_interactions
);
jeu_personnes.add(personne_Sphinx);
// "Lieux"
List<Lieu> territoire_lieux = new ArrayList<>();
List<ConditionEt> lieu_deposable_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_deposable_1_conditions_TEST_list = new ArrayList<>();
lieu_deposable_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_deposable_1_conditions_ET_list.add(
new ConditionEt(lieu_deposable_1_conditions_TEST_list)
);
Condition lieu_deposable_1_condition = new Condition(lieu_deposable_1_conditions_ET_list);
List<ConditionEt> lieu_depart_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_depart_1_conditions_TEST_list = new ArrayList<>();
lieu_depart_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_depart_1_conditions_ET_list.add(
new ConditionEt(lieu_depart_1_conditions_TEST_list)
);
Condition lieu_depart_1_condition = new Condition(lieu_depart_1_conditions_ET_list);
List<ConditionEt> lieu_fin_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_fin_1_conditions_TEST_list = new ArrayList<>();
lieu_fin_1_conditions_TEST_list.add(
new ConditionBoolean(false)
);
lieu_fin_1_conditions_ET_list.add(
new ConditionEt(lieu_fin_1_conditions_TEST_list)
);
Condition lieu_fin_1_condition = new Condition(lieu_fin_1_conditions_ET_list);
List<Description> lieu_Enigme_1_descriptions = new ArrayList<>();
List<ConditionEt> lieu_Enigme_1_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_Enigme_1_description_1_conditions_TEST_list = new ArrayList<>();
lieu_Enigme_1_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_Enigme_1_description_1_conditions_ET_list.add(
new ConditionEt(lieu_Enigme_1_description_1_conditions_TEST_list)
);
Condition lieu_Enigme_1_description_1_condition = new Condition(lieu_Enigme_1_description_1_conditions_ET_list);
lieu_Enigme_1_descriptions.add(
new Description(
"lieu de depart",
lieu_Enigme_1_description_1_condition
)
);
List<Personne> lieu_Enigme_1_personnes = new ArrayList<>();
lieu_Enigme_1_personnes.add(personne_Sphinx);
List<Objet> lieu_Enigme_1_objets = new ArrayList<>();
List<Connaissance> lieu_Enigme_1_connaissances = new ArrayList<>();
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
Lieu lieu_Enigme = new Lieu(
"Enigme",
lieu_deposable_1_condition,
lieu_depart_1_condition,
lieu_fin_1_condition,
lieu_Enigme_1_personnes,
lieu_Enigme_1_descriptions,
lieu_Enigme_1_objets,
lieu_Enigme_1_connaissances
);
territoire_lieux.add(lieu_Enigme);
List<ConditionEt> lieu_deposable_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_deposable_2_conditions_TEST_list = new ArrayList<>();
lieu_deposable_2_conditions_TEST_list.add(
new ConditionBoolean(false)
);
lieu_deposable_2_conditions_ET_list.add(
new ConditionEt(lieu_deposable_2_conditions_TEST_list)
);
Condition lieu_deposable_2_condition = new Condition(lieu_deposable_2_conditions_ET_list);
List<ConditionEt> lieu_depart_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_depart_2_conditions_TEST_list = new ArrayList<>();
lieu_depart_2_conditions_TEST_list.add(
new ConditionBoolean(false)
);
lieu_depart_2_conditions_ET_list.add(
new ConditionEt(lieu_depart_2_conditions_TEST_list)
);
Condition lieu_depart_2_condition = new Condition(lieu_depart_2_conditions_ET_list);
List<ConditionEt> lieu_fin_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_fin_2_conditions_TEST_list = new ArrayList<>();
lieu_fin_2_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_fin_2_conditions_ET_list.add(
new ConditionEt(lieu_fin_2_conditions_TEST_list)
);
Condition lieu_fin_2_condition = new Condition(lieu_fin_2_conditions_ET_list);
List<Description> lieu_Succes_2_descriptions = new ArrayList<>();
List<ConditionEt> lieu_Succes_2_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_Succes_2_description_1_conditions_TEST_list = new ArrayList<>();
lieu_Succes_2_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_Succes_2_description_1_conditions_ET_list.add(
new ConditionEt(lieu_Succes_2_description_1_conditions_TEST_list)
);
Condition lieu_Succes_2_description_1_condition = new Condition(lieu_Succes_2_description_1_conditions_ET_list);
lieu_Succes_2_descriptions.add(
new Description(
"lieu succes",
lieu_Succes_2_description_1_condition
)
);
List<Personne> lieu_Succes_2_personnes = new ArrayList<>();
List<Objet> lieu_Succes_2_objets = new ArrayList<>();
List<Connaissance> lieu_Succes_2_connaissances = new ArrayList<>();
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
Lieu lieu_Succes = new Lieu(
"Succes",
lieu_deposable_2_condition,
lieu_depart_2_condition,
lieu_fin_2_condition,
lieu_Succes_2_personnes,
lieu_Succes_2_descriptions,
lieu_Succes_2_objets,
lieu_Succes_2_connaissances
);
territoire_lieux.add(lieu_Succes);
List<ConditionEt> lieu_deposable_3_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_deposable_3_conditions_TEST_list = new ArrayList<>();
lieu_deposable_3_conditions_TEST_list.add(
new ConditionBoolean(false)
);
lieu_deposable_3_conditions_ET_list.add(
new ConditionEt(lieu_deposable_3_conditions_TEST_list)
);
Condition lieu_deposable_3_condition = new Condition(lieu_deposable_3_conditions_ET_list);
List<ConditionEt> lieu_depart_3_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_depart_3_conditions_TEST_list = new ArrayList<>();
lieu_depart_3_conditions_TEST_list.add(
new ConditionBoolean(false)
);
lieu_depart_3_conditions_ET_list.add(
new ConditionEt(lieu_depart_3_conditions_TEST_list)
);
Condition lieu_depart_3_condition = new Condition(lieu_depart_3_conditions_ET_list);
List<ConditionEt> lieu_fin_3_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_fin_3_conditions_TEST_list = new ArrayList<>();
lieu_fin_3_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_fin_3_conditions_ET_list.add(
new ConditionEt(lieu_fin_3_conditions_TEST_list)
);
Condition lieu_fin_3_condition = new Condition(lieu_fin_3_conditions_ET_list);
List<Description> lieu_Echec_3_descriptions = new ArrayList<>();
List<ConditionEt> lieu_Echec_3_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> lieu_Echec_3_description_1_conditions_TEST_list = new ArrayList<>();
lieu_Echec_3_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
lieu_Echec_3_description_1_conditions_ET_list.add(
new ConditionEt(lieu_Echec_3_description_1_conditions_TEST_list)
);
Condition lieu_Echec_3_description_1_condition = new Condition(lieu_Echec_3_description_1_conditions_ET_list);
lieu_Echec_3_descriptions.add(
new Description(
"lieu echec",
lieu_Echec_3_description_1_condition
)
);
List<Personne> lieu_Echec_3_personnes = new ArrayList<>();
List<Objet> lieu_Echec_3_objets = new ArrayList<>();
List<Connaissance> lieu_Echec_3_connaissances = new ArrayList<>();
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
Lieu lieu_Echec = new Lieu(
"Echec",
lieu_deposable_3_condition,
lieu_depart_3_condition,
lieu_fin_3_condition,
lieu_Echec_3_personnes,
lieu_Echec_3_descriptions,
lieu_Echec_3_objets,
lieu_Echec_3_connaissances
);
territoire_lieux.add(lieu_Echec);
// "Chemins"
List<Chemin> territoire_chemins = new ArrayList<>();
List<ConditionEt> chemin_ouvert_win_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_ouvert_win_1_conditions_TEST_list = new ArrayList<>();
chemin_ouvert_win_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
chemin_ouvert_win_1_conditions_ET_list.add(
new ConditionEt(chemin_ouvert_win_1_conditions_TEST_list)
);
Condition chemin_ouvert_win_1_condition = new Condition(chemin_ouvert_win_1_conditions_ET_list);
List<ConditionEt> chemin_visible_win_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_visible_win_1_conditions_TEST_list = new ArrayList<>();
chemin_visible_win_1_conditions_TEST_list.add(
new ConditionConnaissance(
connaissance_Reussite,
false
)
);
chemin_visible_win_1_conditions_ET_list.add(
new ConditionEt(chemin_visible_win_1_conditions_TEST_list)
);
Condition chemin_visible_win_1_condition = new Condition(chemin_visible_win_1_conditions_ET_list);
List<ConditionEt> chemin_obligatoire_win_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_obligatoire_win_1_conditions_TEST_list = new ArrayList<>();
chemin_obligatoire_win_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
chemin_obligatoire_win_1_conditions_ET_list.add(
new ConditionEt(chemin_obligatoire_win_1_conditions_TEST_list)
);
Condition chemin_obligatoire_win_1_condition = new Condition(chemin_obligatoire_win_1_conditions_ET_list);
List<Description> chemin_win_1_descriptions = new ArrayList<>();
List<ConditionEt> chemin_win_1_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_win_1_description_1_conditions_TEST_list = new ArrayList<>();
chemin_win_1_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
chemin_win_1_description_1_conditions_ET_list.add(
new ConditionEt(chemin_win_1_description_1_conditions_TEST_list)
);
Condition chemin_win_1_description_1_condition = new Condition(chemin_win_1_description_1_conditions_ET_list);
chemin_win_1_descriptions.add(
new Description(
"Le chemin de la victoire !",
chemin_win_1_description_1_condition
)
);
List<Connaissance> chemin_win_1_connaissances = new ArrayList<>();
List<Objet> chemin_win_1_objets_recus = new ArrayList<>();
List<Objet> chemin_win_1_objets_conso = new ArrayList<>();
Chemin chemins_win = new Chemin(
"win",
lieu_Enigme,
lieu_Succes,
chemin_ouvert_win_1_condition,
chemin_visible_win_1_condition,
chemin_obligatoire_win_1_condition,
chemin_win_1_connaissances,
chemin_win_1_objets_recus,
chemin_win_1_objets_conso,
chemin_win_1_descriptions
);
territoire_chemins.add(chemins_win);
List<ConditionEt> chemin_ouvert_loose_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_ouvert_loose_2_conditions_TEST_list = new ArrayList<>();
chemin_ouvert_loose_2_conditions_TEST_list.add(
new ConditionBoolean(true)
);
chemin_ouvert_loose_2_conditions_ET_list.add(
new ConditionEt(chemin_ouvert_loose_2_conditions_TEST_list)
);
Condition chemin_ouvert_loose_2_condition = new Condition(chemin_ouvert_loose_2_conditions_ET_list);
List<ConditionEt> chemin_visible_loose_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_visible_loose_2_conditions_TEST_list = new ArrayList<>();
chemin_visible_loose_2_conditions_TEST_list.add(
new ConditionObjet(
objet_tentative,
"==",
0
)
);
chemin_visible_loose_2_conditions_ET_list.add(
new ConditionEt(chemin_visible_loose_2_conditions_TEST_list)
);
Condition chemin_visible_loose_2_condition = new Condition(chemin_visible_loose_2_conditions_ET_list);
List<ConditionEt> chemin_obligatoire_loose_2_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_obligatoire_loose_2_conditions_TEST_list = new ArrayList<>();
chemin_obligatoire_loose_2_conditions_TEST_list.add(
new ConditionBoolean(true)
);
chemin_obligatoire_loose_2_conditions_ET_list.add(
new ConditionEt(chemin_obligatoire_loose_2_conditions_TEST_list)
);
Condition chemin_obligatoire_loose_2_condition = new Condition(chemin_obligatoire_loose_2_conditions_ET_list);
List<Description> chemin_loose_2_descriptions = new ArrayList<>();
List<ConditionEt> chemin_loose_2_description_1_conditions_ET_list = new ArrayList<>();
List<ConditionTest> chemin_loose_2_description_1_conditions_TEST_list = new ArrayList<>();
chemin_loose_2_description_1_conditions_TEST_list.add(
new ConditionBoolean(true)
);
chemin_loose_2_description_1_conditions_ET_list.add(
new ConditionEt(chemin_loose_2_description_1_conditions_TEST_list)
);
Condition chemin_loose_2_description_1_condition = new Condition(chemin_loose_2_description_1_conditions_ET_list);
chemin_loose_2_descriptions.add(
new Description(
"Le chemin de la loose !",
chemin_loose_2_description_1_condition
)
);
List<Connaissance> chemin_loose_2_connaissances = new ArrayList<>();
List<Objet> chemin_loose_2_objets_recus = new ArrayList<>();
List<Objet> chemin_loose_2_objets_conso = new ArrayList<>();
Chemin chemins_loose = new Chemin(
"loose",
lieu_Enigme,
lieu_Echec,
chemin_ouvert_loose_2_condition,
chemin_visible_loose_2_condition,
chemin_obligatoire_loose_2_condition,
chemin_loose_2_connaissances,
chemin_loose_2_objets_recus,
chemin_loose_2_objets_conso,
chemin_loose_2_descriptions
);
territoire_chemins.add(chemins_loose);
Territoire jeu_territoire = new Territoire(territoire_lieux, territoire_chemins);
Jeu ze_GAME = new Jeu(
jeu_territoire,
jeu_objets,
jeu_connaissances,
jeu_personnes,
jeu_transformations
);
ze_GAME.jouer();
}
}

View file

@ -31,7 +31,7 @@ List<Objet> jeu_objets = new ArrayList<>();
[comment Connaissances /]
// "Connaissances"
List<Conaissance> jeu_connaissances = new ArrayList<>();
List<Connaissance> jeu_connaissances = new ArrayList<>();
[for (c : Connaissance | jeu.connaissances)]
[print_descriptions(c.descriptions, 'connaissance_' + c.nom.nom)/]
@ -120,7 +120,7 @@ List<Lieu> territoire_lieux = new ArrayList<>();
List<Personne> lieu_[l.nom.nom/]_[i/]_personnes = new ArrayList<>();
[for (p : Nom | l.personnes)]
lieu_[l.nom.nom/]_[i/]_personnes.add(objet_[p.nom/]);
lieu_[l.nom.nom/]_[i/]_personnes.add(personne_[p.nom/]);
[/for]
List<Objet> lieu_[l.nom.nom/]_[i/]_objets = new ArrayList<>();
[for (o : Nom | l.objets)]
@ -186,17 +186,31 @@ List<Chemin> territoire_chemins = new ArrayList<>();
territoire_chemins.add(chemins_[ch.nom.nom/]);
[/for]
Territoire jeu_territoire = new Territoire(territoire_lieux, territoire_chemins);
Jeu ze_GAME = new Jeu(
jeu_territoire,
jeu_objets,
jeu_connaissances,
jeu_personnes,
jeu_transformations
);
ze_GAME.jouer();
}
}
[/file]
[/template]
[template public print_condition(c : Condition, name: String) post (trim()) ]
List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
List<ConditionEt> [name/]_conditions_ET_list = new ArrayList<>();
[for (cET : ConditionEt | c.condition)]
List<ConditionTest> [name/]_conditions_TEST_list = new ArrayList<>();
[for (cTEST : ConditionTest | cET.conditionTest)]
[name/]_conditions_ET_[i/].add(
[name/]_conditions_TEST_list.add(
[if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean([cBOOL.valeur/])
@ -205,7 +219,7 @@ List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance(
connaissance_[cCONN.connaissance/],
[if (cCONN.connaissance.startsWith('!'))]true[else]false[/if]
[if (cCONN.negation = '!')]true[else]false[/if]
)
[/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))]
@ -218,12 +232,13 @@ List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
[/let]
[/if]
);
[name/]_conditions_ET.add([name/]_conditions_TEST_[i/]);
[/for]
[name/]_conditions_ET_list.add(
new ConditionEt([name/]_conditions_TEST_list)
);
[/for]
Condition [name/]_condition = new Condition([name/]_conditions_ET);
Condition [name/]_condition = new Condition([name/]_conditions_ET_list);
[/template]
[template public print_descriptions(ds : OrderedSet(Description), name: String) post (trim()) ]
@ -247,16 +262,18 @@ List<Action> [name/]_actions = new ArrayList<>();
[for (a : Action | as)]
[print_condition(a.visible, name + '_action_visible_' + i.toString())/]
[print_condition(a.finInteraction, name + '_action_fin_' + i.toString())/]
[print_descriptions(a.descriptions, name + '_' + i.toString())/]
[print_descriptions(a.descriptions, name + '_action_' + i.toString())/]
List<Connaissance> [name/]_action_[i/]_connaissances = new ArrayList<>();
[for (c : Nom | a.connaissances)]
[name/]_action_[i/]_connaissances.add(connaissance_[c.nom/]);
[/for]
List<Objet> [name/]_action_[i/]_objets_conso = new ArrayList<>();
[for (c : Nom | a.objetsConso)]
[name/]_action_[i/]_objets_conso.add(objet_[c.nom/]);
[/for]
[let test : String = name + '_action_' + i + '_objets_conso'] // TODO: OMG C DÉGUEULASSE -> LE FAIRE PARTOUT
[for (c : Nom | a.objetsConso)]
[test/].add(objet_[c.nom/]);
[/for]
[/let]
List<Objet> [name/]_action_[i/]_objets_recus = new ArrayList<>();
[for (c : Nom | a.objetsRecus)]
[name/]_action_[i/]_objets_recus.add(objet_[c.nom/]);
@ -267,16 +284,16 @@ List<Action> [name/]_actions = new ArrayList<>();
[name/]_action_visible_[i/]_condition,
[name/]_action_fin_[i/]_condition,
[name/]_action_[i/]_connaissances,
[name/]_action_[i/]_objets_conso,
[name/]_action_[i/]_objets_recus,
[name/]_action_[i/]_objets_conso,
[name/]_action_[i/]_descriptions
)
);
);
[/for]
[/template]
[template public print_interactions(is: OrderedSet(Interaction), name: String)]
List<Action> [name/]_interactions = new ArrayList<>();
List<Interaction> [name/]_interactions = new ArrayList<>();
[for (it : Interaction | is)]
[print_condition(it.visible, name + '_interaction_visible_' + i.toString())/]
@ -295,8 +312,8 @@ List<Action> [name/]_interactions = new ArrayList<>();
[name/]_interaction_[i/]_objets_recus.add(objet_[c.nom/]);
[/for]
[name/]_actions.add(
new Action(
[name/]_interactions.add(
new Interaction(
[name/]_interaction_visible_[i/]_condition,
[name/]_interaction_[i/]_connaissances,
[name/]_interaction_[i/]_objets_conso,

View file

@ -31,7 +31,7 @@ List<Objet> jeu_objets = new ArrayList<>();
[comment Connaissances /]
// "Connaissances"
List<Conaissance> jeu_connaissances = new ArrayList<>();
List<Connaissance> jeu_connaissances = new ArrayList<>();
[for (c : Connaissance | jeu.connaissances)]
[print_descriptions(c.descriptions, 'connaissance_' + c.nom.nom)/]
@ -120,7 +120,7 @@ List<Lieu> territoire_lieux = new ArrayList<>();
List<Personne> lieu_[l.nom.nom/]_[i/]_personnes = new ArrayList<>();
[for (p : Nom | l.personnes)]
lieu_[l.nom.nom/]_[i/]_personnes.add(objet_[p.nom/]);
lieu_[l.nom.nom/]_[i/]_personnes.add(personne_[p.nom/]);
[/for]
List<Objet> lieu_[l.nom.nom/]_[i/]_objets = new ArrayList<>();
[for (o : Nom | l.objets)]
@ -186,17 +186,31 @@ List<Chemin> territoire_chemins = new ArrayList<>();
territoire_chemins.add(chemins_[ch.nom.nom/]);
[/for]
Territoire jeu_territoire = new Territoire(territoire_lieux, territoire_chemins);
Jeu ze_GAME = new Jeu(
jeu_territoire,
jeu_objets,
jeu_connaissances,
jeu_personnes,
jeu_transformations
);
ze_GAME.jouer();
}
}
[/file]
[/template]
[template public print_condition(c : Condition, name: String) post (trim()) ]
List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
List<ConditionEt> [name/]_conditions_ET_list = new ArrayList<>();
[for (cET : ConditionEt | c.condition)]
List<ConditionTest> [name/]_conditions_TEST_list = new ArrayList<>();
[for (cTEST : ConditionTest | cET.conditionTest)]
[name/]_conditions_ET_[i/].add(
[name/]_conditions_TEST_list.add(
[if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean([cBOOL.valeur/])
@ -205,7 +219,7 @@ List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance(
connaissance_[cCONN.connaissance/],
[if (cCONN.connaissance.startsWith('!'))]true[else]false[/if]
[if (cCONN.negation = '!')]true[else]false[/if]
)
[/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))]
@ -218,12 +232,13 @@ List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
[/let]
[/if]
);
[name/]_conditions_ET.add([name/]_conditions_TEST_[i/]);
[/for]
[name/]_conditions_ET_list.add(
new ConditionEt([name/]_conditions_TEST_list)
);
[/for]
Condition [name/]_condition = new Condition([name/]_conditions_ET);
Condition [name/]_condition = new Condition([name/]_conditions_ET_list);
[/template]
[template public print_descriptions(ds : OrderedSet(Description), name: String) post (trim()) ]
@ -247,16 +262,18 @@ List<Action> [name/]_actions = new ArrayList<>();
[for (a : Action | as)]
[print_condition(a.visible, name + '_action_visible_' + i.toString())/]
[print_condition(a.finInteraction, name + '_action_fin_' + i.toString())/]
[print_descriptions(a.descriptions, name + '_' + i.toString())/]
[print_descriptions(a.descriptions, name + '_action_' + i.toString())/]
List<Connaissance> [name/]_action_[i/]_connaissances = new ArrayList<>();
[for (c : Nom | a.connaissances)]
[name/]_action_[i/]_connaissances.add(connaissance_[c.nom/]);
[/for]
List<Objet> [name/]_action_[i/]_objets_conso = new ArrayList<>();
[for (c : Nom | a.objetsConso)]
[name/]_action_[i/]_objets_conso.add(objet_[c.nom/]);
[/for]
[let test : String = name + '_action_' + i + '_objets_conso'] // TODO: OMG C DÉGUEULASSE -> LE FAIRE PARTOUT
[for (c : Nom | a.objetsConso)]
[test/].add(objet_[c.nom/]);
[/for]
[/let]
List<Objet> [name/]_action_[i/]_objets_recus = new ArrayList<>();
[for (c : Nom | a.objetsRecus)]
[name/]_action_[i/]_objets_recus.add(objet_[c.nom/]);
@ -267,16 +284,16 @@ List<Action> [name/]_actions = new ArrayList<>();
[name/]_action_visible_[i/]_condition,
[name/]_action_fin_[i/]_condition,
[name/]_action_[i/]_connaissances,
[name/]_action_[i/]_objets_conso,
[name/]_action_[i/]_objets_recus,
[name/]_action_[i/]_objets_conso,
[name/]_action_[i/]_descriptions
)
);
);
[/for]
[/template]
[template public print_interactions(is: OrderedSet(Interaction), name: String)]
List<Action> [name/]_interactions = new ArrayList<>();
List<Interaction> [name/]_interactions = new ArrayList<>();
[for (it : Interaction | is)]
[print_condition(it.visible, name + '_interaction_visible_' + i.toString())/]
@ -295,8 +312,8 @@ List<Action> [name/]_interactions = new ArrayList<>();
[name/]_interaction_[i/]_objets_recus.add(objet_[c.nom/]);
[/for]
[name/]_actions.add(
new Action(
[name/]_interactions.add(
new Interaction(
[name/]_interaction_visible_[i/]_condition,
[name/]_interaction_[i/]_connaissances,
[name/]_interaction_[i/]_objets_conso,