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_in": "Enigme",
"lieu_out": "Echec", "lieu_out": "Echec",
"ouvert": true, "ouvert": true,
"visible": tentatives == 0, "visible": tentative == 0,
"obligatoire": true, "obligatoire": true,
"connaissances": [], "connaissances": [],
"objets_recus": [], "objets_recus": [],

View file

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

View file

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

View file

@ -25,6 +25,11 @@ public class Jeu {
this.transformations = transformations; this.transformations = transformations;
} }
public static void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
void jouer() { void jouer() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
@ -39,7 +44,8 @@ public class Jeu {
while (!lieu.fin.evaluer()) { while (!lieu.fin.evaluer()) {
boolean recommencer = false; 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); System.out.println(Jeu.explorateur);
for (Personne p : lieu.personnes) { for (Personne p : lieu.personnes) {
@ -100,7 +106,8 @@ public class Jeu {
} else { } else {
Personne p = personnes_choix.get(choix - chemins_choix.size()); 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(Jeu.explorateur);
System.out.println(p + " :"); 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 /] [comment Connaissances /]
// "Connaissances" // "Connaissances"
List<Conaissance> jeu_connaissances = new ArrayList<>(); List<Connaissance> jeu_connaissances = new ArrayList<>();
[for (c : Connaissance | jeu.connaissances)] [for (c : Connaissance | jeu.connaissances)]
[print_descriptions(c.descriptions, 'connaissance_' + c.nom.nom)/] [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<>(); List<Personne> lieu_[l.nom.nom/]_[i/]_personnes = new ArrayList<>();
[for (p : Nom | l.personnes)] [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] [/for]
List<Objet> lieu_[l.nom.nom/]_[i/]_objets = new ArrayList<>(); List<Objet> lieu_[l.nom.nom/]_[i/]_objets = new ArrayList<>();
[for (o : Nom | l.objets)] [for (o : Nom | l.objets)]
@ -186,17 +186,31 @@ List<Chemin> territoire_chemins = new ArrayList<>();
territoire_chemins.add(chemins_[ch.nom.nom/]); territoire_chemins.add(chemins_[ch.nom.nom/]);
[/for] [/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] [/file]
[/template] [/template]
[template public print_condition(c : Condition, name: String) post (trim()) ] [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)] [for (cET : ConditionEt | c.condition)]
List<ConditionTest> [name/]_conditions_TEST_list = new ArrayList<>();
[for (cTEST : ConditionTest | cET.conditionTest)] [for (cTEST : ConditionTest | cET.conditionTest)]
[name/]_conditions_ET_[i/].add( [name/]_conditions_TEST_list.add(
[if (cTEST.oclIsKindOf(ConditionBoolean))] [if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)] [let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean([cBOOL.valeur/]) new ConditionBoolean([cBOOL.valeur/])
@ -205,7 +219,7 @@ List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)] [let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance( new ConditionConnaissance(
connaissance_[cCONN.connaissance/], connaissance_[cCONN.connaissance/],
[if (cCONN.connaissance.startsWith('!'))]true[else]false[/if] [if (cCONN.negation = '!')]true[else]false[/if]
) )
[/let] [/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))] [elseif (cTEST.oclIsKindOf(ConditionObjet))]
@ -218,12 +232,13 @@ List<ConditionEt> [name/]_conditions_ET = new ArrayList<>();
[/let] [/let]
[/if] [/if]
); );
[name/]_conditions_ET.add([name/]_conditions_TEST_[i/]);
[/for] [/for]
[name/]_conditions_ET_list.add(
new ConditionEt([name/]_conditions_TEST_list)
);
[/for] [/for]
Condition [name/]_condition = new Condition([name/]_conditions_ET); Condition [name/]_condition = new Condition([name/]_conditions_ET_list);
[/template] [/template]
[template public print_descriptions(ds : OrderedSet(Description), name: String) post (trim()) ] [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)] [for (a : Action | as)]
[print_condition(a.visible, name + '_action_visible_' + i.toString())/] [print_condition(a.visible, name + '_action_visible_' + i.toString())/]
[print_condition(a.finInteraction, name + '_action_fin_' + 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<>(); List<Connaissance> [name/]_action_[i/]_connaissances = new ArrayList<>();
[for (c : Nom | a.connaissances)] [for (c : Nom | a.connaissances)]
[name/]_action_[i/]_connaissances.add(connaissance_[c.nom/]); [name/]_action_[i/]_connaissances.add(connaissance_[c.nom/]);
[/for] [/for]
List<Objet> [name/]_action_[i/]_objets_conso = new ArrayList<>(); List<Objet> [name/]_action_[i/]_objets_conso = new ArrayList<>();
[let test : String = name + '_action_' + i + '_objets_conso'] // TODO: OMG C DÉGUEULASSE -> LE FAIRE PARTOUT
[for (c : Nom | a.objetsConso)] [for (c : Nom | a.objetsConso)]
[name/]_action_[i/]_objets_conso.add(objet_[c.nom/]); [test/].add(objet_[c.nom/]);
[/for] [/for]
[/let]
List<Objet> [name/]_action_[i/]_objets_recus = new ArrayList<>(); List<Objet> [name/]_action_[i/]_objets_recus = new ArrayList<>();
[for (c : Nom | a.objetsRecus)] [for (c : Nom | a.objetsRecus)]
[name/]_action_[i/]_objets_recus.add(objet_[c.nom/]); [name/]_action_[i/]_objets_recus.add(objet_[c.nom/]);
@ -267,8 +284,8 @@ List<Action> [name/]_actions = new ArrayList<>();
[name/]_action_visible_[i/]_condition, [name/]_action_visible_[i/]_condition,
[name/]_action_fin_[i/]_condition, [name/]_action_fin_[i/]_condition,
[name/]_action_[i/]_connaissances, [name/]_action_[i/]_connaissances,
[name/]_action_[i/]_objets_conso,
[name/]_action_[i/]_objets_recus, [name/]_action_[i/]_objets_recus,
[name/]_action_[i/]_objets_conso,
[name/]_action_[i/]_descriptions [name/]_action_[i/]_descriptions
) )
); );
@ -276,7 +293,7 @@ List<Action> [name/]_actions = new ArrayList<>();
[/template] [/template]
[template public print_interactions(is: OrderedSet(Interaction), name: String)] [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)] [for (it : Interaction | is)]
[print_condition(it.visible, name + '_interaction_visible_' + i.toString())/] [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/]); [name/]_interaction_[i/]_objets_recus.add(objet_[c.nom/]);
[/for] [/for]
[name/]_actions.add( [name/]_interactions.add(
new Action( new Interaction(
[name/]_interaction_visible_[i/]_condition, [name/]_interaction_visible_[i/]_condition,
[name/]_interaction_[i/]_connaissances, [name/]_interaction_[i/]_connaissances,
[name/]_interaction_[i/]_objets_conso, [name/]_interaction_[i/]_objets_conso,

View file

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