diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Action.java b/runtime-workspace/fr.n7.game.examples/src-gen/Action.java new file mode 100644 index 0000000..5665fb1 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Action.java @@ -0,0 +1,49 @@ +import java.util.List; + +public class Action { + Condition visible; + List connaissances; + List objetsRecus; + List objetsConso; + Condition finInterraction; + List descriptions; + + public Action( + Condition visible, + List connaissances, + List objetsRecus, + List objetsConso, + Condition finInterraction, + List descriptions) { + this.visible = visible; + this.connaissances = connaissances; + this.objetsRecus = objetsRecus; + this.objetsConso = objetsConso; + this.finInterraction = finInterraction; + this.descriptions = descriptions; + } + + void actionner() { + for (Connaissance c : this.connaissances) { + if (!Jeu.explorateur.connaissances.contains(c)) { + Jeu.explorateur.connaissances.add(c); + } + } + for (Objet o : this.objetsRecus) { + Jeu.explorateur.objets.add(o); + } + for (Objet o : this.objetsConso) { + Jeu.explorateur.objets.remove(o); + } + } + + @Override + public String toString() { + for (Description d : this.descriptions) { + if (d.condition.evaluer()) { + return d.toString(); + } + } + return "No desc"; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Chemin.java b/runtime-workspace/fr.n7.game.examples/src-gen/Chemin.java new file mode 100644 index 0000000..251c984 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Chemin.java @@ -0,0 +1,45 @@ +import java.util.List; + +public class Chemin { + Lieu lieuIn; + Lieu lieuOut; + Condition ouvert; + Condition visible; + Condition obligatoire; + List connaissancesRecus; + List objetsRecus; + List objetsConso; + List descriptions; + + public Chemin( + Lieu lieuIn, + Lieu lieuOut, + Condition ouvert, + Condition visible, + Condition obligatoire, + List connaissancesRecus, + List objetsRecus, + List objetsConso, + List descriptions) { + this.lieuIn = lieuIn; + this.lieuOut = lieuOut; + this.ouvert = ouvert; + this.visible = visible; + this.obligatoire = obligatoire; + this.connaissancesRecus = connaissancesRecus; + this.objetsRecus = objetsRecus; + this.objetsConso = objetsConso; + this.descriptions = descriptions; + + } + + @Override + public String toString() { + for (Description d : descriptions) { + if (d.condition.evaluer()) { + return d.toString(); + } + } + return "No desc"; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Condition.java b/runtime-workspace/fr.n7.game.examples/src-gen/Condition.java new file mode 100644 index 0000000..7231129 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Condition.java @@ -0,0 +1,21 @@ +import java.util.List; +import java.util.ArrayList; + +public class Condition { + + List conditionEts; + + public Condition(List conditionEts) { + this.conditionEts = conditionEts; + } + + public Boolean evaluer() { + for (ConditionEt cond : conditionEts) { + if (cond.evaluer()) { + return true; + } + } + return false; + } + +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/ConditionBoolean.java b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionBoolean.java new file mode 100644 index 0000000..383769a --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionBoolean.java @@ -0,0 +1,11 @@ +public class ConditionBoolean implements ConditionTest { + Boolean bool; + + public ConditionBoolean(Boolean bool) { + this.bool = bool; + } + + public Boolean evaluer() { + return this.bool; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/ConditionConnaissance.java b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionConnaissance.java new file mode 100644 index 0000000..beb7a11 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionConnaissance.java @@ -0,0 +1,21 @@ +public class ConditionConnaissance implements ConditionTest { + + Connaissance connaissance; + Boolean negation; + + public ConditionConnaissance( + Connaissance connaissance, + Boolean negation) { + this.connaissance = connaissance; + this.negation = negation; + } + + public Boolean evaluer() { + if (Jeu.explorateur.connaissances.contains(this.connaissance)) { + return !this.negation; + } else { + return this.negation; + } + } + +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/ConditionEt.java b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionEt.java new file mode 100644 index 0000000..5458432 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionEt.java @@ -0,0 +1,21 @@ +import java.util.List; +import java.util.ArrayList; + +public class ConditionEt { + + List conditionTests; + + public ConditionEt(List conditionTests) { + this.conditionTests = conditionTests; + } + + public Boolean evaluer() { + for (ConditionTest cond : conditionTests) { + if (!cond.evaluer()) { + return false; + } + } + return true; + } + +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/ConditionObjet.java b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionObjet.java new file mode 100644 index 0000000..5862ecf --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionObjet.java @@ -0,0 +1,39 @@ +public class ConditionObjet implements ConditionTest { + Objet objet; + String operateur; + int nombre; + + public ConditionObjet( + Objet objet, + String operateur, + int nombre) { + this.objet = objet; + this.operateur = operateur; + this.nombre = nombre; + } + + public Boolean evaluer() { + int compteur = 0; + for (Objet obj : Jeu.explorateur.objets) { + if (obj.equals(this.objet)) { + compteur++; + } + } + + if (this.operateur.equals("<")) { + return compteur < nombre; + } else if (this.operateur.equals(">")) { + return compteur > nombre; + } else if (this.operateur.equals("==")) { + return compteur == nombre; + } else if (this.operateur.equals("<=")) { + return compteur <= nombre; + } else if (this.operateur.equals(">=")) { + return compteur >= nombre; + } else if (this.operateur.equals("!=")) { + return compteur != nombre; + } else { + throw new Error("dafuk"); + } + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/ConditionTest.java b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionTest.java new file mode 100644 index 0000000..a886acf --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/ConditionTest.java @@ -0,0 +1,5 @@ +public interface ConditionTest { + + public Boolean evaluer(); + +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Connaissance.java b/runtime-workspace/fr.n7.game.examples/src-gen/Connaissance.java new file mode 100644 index 0000000..044e202 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Connaissance.java @@ -0,0 +1,26 @@ +import java.util.List; + +public class Connaissance { + String nom; + Condition visible; + List descriptions; + + public Connaissance( + String nom, + Condition visible, + List descriptions) { + this.nom = nom; + this.visible = visible; + this.descriptions = descriptions; + } + + @Override + public String toString() { + for (Description d : this.descriptions) { + if (d.condition.evaluer()) { + return "(" + this.nom + " : " + d + ")"; + } + } + return "(" + this.nom + ")"; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Description.java b/runtime-workspace/fr.n7.game.examples/src-gen/Description.java new file mode 100644 index 0000000..adb783b --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Description.java @@ -0,0 +1,16 @@ +public class Description { + String texte; + Condition condition; + + public Description( + String texte, + Condition condition) { + this.texte = texte; + this.condition = condition; + } + + @Override + public String toString() { + return this.texte; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Explorateur.java b/runtime-workspace/fr.n7.game.examples/src-gen/Explorateur.java new file mode 100644 index 0000000..7a58a88 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Explorateur.java @@ -0,0 +1,31 @@ +import java.util.List; + +public class Explorateur { + int taille; + List connaissances; + List objets; + + public Explorateur( + int taille, + List connaissances, + List objets) { + this.taille = taille; + this.connaissances = connaissances; + this.objets = objets; + } + + @Override + public String toString() { + String txt = "Objets :\n"; + for (Objet c : this.objets) { + txt += c + " "; + } + txt += "\n\nConnaissances :\n"; + for (Connaissance c : this.connaissances) { + txt += c + " "; + } + txt += "\n==================================================="; + return txt; + } + +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Interaction.java b/runtime-workspace/fr.n7.game.examples/src-gen/Interaction.java new file mode 100644 index 0000000..4e059f9 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Interaction.java @@ -0,0 +1,70 @@ +import java.util.List; +import java.util.ArrayList; +import java.io.InputStreamReader; +import java.io.BufferedReader; +import java.io.IOException; + +public class Interaction { + Condition visible; + List connaissances; + List objetsRecus; + List objetsConso; + List actions; + + public Interaction( + Condition visible, + List connaissances, + List objetsRecus, + List objetsConso, + List actions) { + this.visible = visible; + this.connaissances = connaissances; + this.objetsRecus = objetsRecus; + this.objetsConso = objetsConso; + this.actions = actions; + } + + void interragir(BufferedReader reader, Lieu lieu) { + boolean arreter_interraction = false; + + while (!arreter_interraction) { + System.out.println(this); + System.out.print("\nChoix : "); + + List actions_choix = new ArrayList<>(); + for (Action a : this.actions) { + if (a.visible.evaluer()) { + actions_choix.add(a); + } + } + int choix = 0; + Action a = null; + try { + choix = Integer.parseInt(reader.readLine()); + a = actions_choix.get(choix); + } catch (NumberFormatException e) { + continue; + } catch (IndexOutOfBoundsException e) { + continue; + } catch (IOException e) { + e.printStackTrace(); + } + a.actionner(); + + arreter_interraction = a.finInterraction.evaluer(); + } + } + + @Override + public String toString() { + String res = ""; + int k = 0; + for (Action a : this.actions) { + if (a.visible.evaluer()) { + res += "[" + k + "] " + a + "\n"; + k++; + } + } + return res; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Jeu.java b/runtime-workspace/fr.n7.game.examples/src-gen/Jeu.java new file mode 100644 index 0000000..4df2274 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Jeu.java @@ -0,0 +1,120 @@ +import java.io.InputStreamReader; +import java.io.BufferedReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class Jeu { + public static Explorateur explorateur; + Territoire territoire; + List objets; + List connaissances; + List personnes; + List transformations; + + public Jeu( + Territoire territoire, + List objets, + List connaissances, + List personnes, + List transformations) { + this.territoire = territoire; + this.objets = objets; + this.connaissances = connaissances; + this.personnes = personnes; + this.transformations = transformations; + } + + void jouer() { + BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + + Lieu lieu = null; + for (Lieu l : territoire.lieux) { + if (l.depart.evaluer()) { + lieu = l; + break; + } + } + + while (!lieu.fin.evaluer()) { + boolean recommencer = false; + + System.out.println("\n\n\n\n\n\n\n\n\n\nLieu : " + lieu + "\n"); + System.out.println(Jeu.explorateur); + + for (Personne p : lieu.personnes) { + if (p.visible.evaluer() && p.obligatoire.evaluer()) { + System.out.println(p + " :"); + + p.interragir(reader, lieu); + recommencer = true; + break; + } + } + if (recommencer) { + continue; + } + + for (Chemin c : territoire.chemins) { + if (c.lieuIn == lieu) { + if (c.visible.evaluer() && c.obligatoire.evaluer() && c.ouvert.evaluer()) { + lieu = c.lieuOut; + recommencer = true; + break; + } + } + } + if (recommencer) { + continue; + } + + int k = 0; + List chemins_choix = new ArrayList<>(); + for (Chemin c : territoire.chemins) { + if (c.lieuIn == lieu) { + if (c.visible.evaluer() && c.ouvert.evaluer()) { + chemins_choix.add(c); + System.out.println("[" + k + "] " + c); + k++; + } + } + } + + List personnes_choix = new ArrayList<>(); + for (Personne p : personnes) { + if (lieu.personnes.contains(p)) { + if (p.visible.evaluer()) { + personnes_choix.add(p); + System.out.println("[" + k + "] " + p); + k++; + } + } + } + + int choix = 0; + try { + System.out.print("\nChoix : "); + choix = Integer.parseInt(reader.readLine()); + if (choix < chemins_choix.size()) { + lieu = chemins_choix.get(choix).lieuOut; + } 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"); + System.out.println(Jeu.explorateur); + System.out.println(p + " :"); + + p.interragir(reader, lieu); + } + } catch (NumberFormatException e) { + continue; + } catch (IndexOutOfBoundsException e) { + continue; + } catch (IOException e) { + e.printStackTrace(); + } + } + + System.out.println("FIN : " + lieu.nom); + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Lieu.java b/runtime-workspace/fr.n7.game.examples/src-gen/Lieu.java new file mode 100644 index 0000000..4be1123 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Lieu.java @@ -0,0 +1,36 @@ +import java.util.List; + +public class Lieu { + String nom; + Condition deposable; + Condition depart; + Condition fin; + List personnes; + List descriptions; + List objets; + List connaissances; + + public Lieu( + String nom, + Condition deposable, + Condition depart, + Condition fin, + List personnes, + List descriptions, + List objets, + List connaissances) { + this.nom = nom; + this.deposable = deposable; + this.depart = depart; + this.fin = fin; + this.personnes = personnes; + this.descriptions = descriptions; + this.objets = objets; + this.connaissances = connaissances; + } + + @Override + public String toString() { + return nom; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Objet.java b/runtime-workspace/fr.n7.game.examples/src-gen/Objet.java new file mode 100644 index 0000000..79c35fa --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Objet.java @@ -0,0 +1,29 @@ +import java.util.List; + +public class Objet { + String nom; + int taille; + Condition visible; + List descriptions; + + public Objet( + String nom, + int taille, + Condition visible, + List descriptions) { + this.nom = nom; + this.taille = taille; + this.visible = visible; + this.descriptions = descriptions; + } + + @Override + public String toString() { + for (Description d : this.descriptions) { + if (d.condition.evaluer()) { + return "(" + this.nom + ": " + d + ")"; + } + } + return "(" + this.nom + ")"; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Personne.java b/runtime-workspace/fr.n7.game.examples/src-gen/Personne.java new file mode 100644 index 0000000..3687b6e --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Personne.java @@ -0,0 +1,35 @@ +import java.util.List; +import java.io.InputStreamReader; +import java.io.BufferedReader; + +public class Personne { + String nom; + Condition visible; + Condition obligatoire; + List interactions; + + public Personne( + String nom, + Condition visible, + Condition obligatoire, + List interactions) { + this.nom = nom; + this.visible = visible; + this.obligatoire = obligatoire; + this.interactions = interactions; + } + + void interragir(BufferedReader reader, Lieu lieu) { + for (Interaction i : this.interactions) { + if (i.visible.evaluer()) { + i.interragir(reader, lieu); + } + break; + } + } + + @Override + public String toString() { + return nom; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Prototype.java b/runtime-workspace/fr.n7.game.examples/src-gen/Prototype.java deleted file mode 100644 index c0c097d..0000000 --- a/runtime-workspace/fr.n7.game.examples/src-gen/Prototype.java +++ /dev/null @@ -1,675 +0,0 @@ -public class Prototype { -public static void main(String[] args) { - -// "Objets" -List jeu_objets = new ArrayList<>(); - - List objet_tentative_descriptions = new ArrayList<>(); - - List objet_tentative_description_1_conditions_ET = new ArrayList<>(); - - List objet_tentative_description_1_conditions_TEST_1 = new ArrayList<>(); - - objet_tentative_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - objet_tentative_description_1_conditions_ET.add(objet_tentative_description_1_conditions_TEST_1) - - - Condition objet_tentative_description_1_condition = new Condition(objet_tentative_description_1_conditions_ET); - - objet_tentative_descriptions.add( - new Description( - "permet repondre une question du sphinx", - objet_tentative_description_1_condition - ) - ); - List objet_visible_tentative_conditions_ET = new ArrayList<>(); - - List objet_visible_tentative_conditions_TEST_1 = new ArrayList<>(); - - objet_visible_tentative_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - objet_visible_tentative_conditions_ET.add(objet_visible_tentative_conditions_TEST_1) - - - Condition objet_visible_tentative_condition = new Condition(objet_visible_tentative_conditions_ET); - Objet objet_tentative = new Objet( - "tentative", - 1, - objet_visible_tentative_condition, - objet_tentative_descriptions - ); - jeu_objets.add(objet_tentative); - -// "Connaissances" -List jeu_connaissances = new ArrayList<>(); - - List connaissance_Reussite_descriptions = new ArrayList<>(); - - List connaissance_Reussite_description_1_conditions_ET = new ArrayList<>(); - - List connaissance_Reussite_description_1_conditions_TEST_1 = new ArrayList<>(); - - connaissance_Reussite_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - connaissance_Reussite_description_1_conditions_ET.add(connaissance_Reussite_description_1_conditions_TEST_1) - - - Condition connaissance_Reussite_description_1_condition = new Condition(connaissance_Reussite_description_1_conditions_ET); - - connaissance_Reussite_descriptions.add( - new Description( - "Permet de se casser de la", - connaissance_Reussite_description_1_condition - ) - ); - List connaissance_visible_Reussite_conditions_ET = new ArrayList<>(); - - List connaissance_visible_Reussite_conditions_TEST_1 = new ArrayList<>(); - - connaissance_visible_Reussite_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - connaissance_visible_Reussite_conditions_ET.add(connaissance_visible_Reussite_conditions_TEST_1) - - - Condition connaissance_visible_Reussite_condition = new Condition(connaissance_visible_Reussite_conditions_ET); - Connaissance connaissance_Reussite = new Connaissance( - "Reussite", - connaissance_visible_Reussite_condition, - connaissance_Reussite_descriptions - ); - jeu_connaissances.add(connaissance_Reussite); - -// "Transformations" -List jeu_transformations = new ArrayList<>(); - - -// "Explorateur" - -List explorateur_inventaire = new ArrayList<>(); - explorateur_inventaire.add(objet_tentative); - explorateur_inventaire.add(objet_tentative); - explorateur_inventaire.add(objet_tentative); - -List explorateur_connaissances = new ArrayList<>(); - -Jeu.explorateur = new Explorateur( - 3, - explorateur_connaissances, - explorateur_inventaire -); - -// "Personnes" - -List jeu_personnes = new ArrayList<>(); - - List personne_visible_Sphinx_1_conditions_ET = new ArrayList<>(); - - List personne_visible_Sphinx_1_conditions_TEST_1 = new ArrayList<>(); - - personne_visible_Sphinx_1_conditions_TEST_1.add( - new ConditionConnaissance( - connaissance_Reussite, - false - ) - ); - personne_visible_Sphinx_1_conditions_ET.add(personne_visible_Sphinx_1_conditions_TEST_1) - - personne_visible_Sphinx_1_conditions_TEST_2.add( - new ConditionObjet( - objet_tentative, - ">", - 0 - ) - ); - personne_visible_Sphinx_1_conditions_ET.add(personne_visible_Sphinx_1_conditions_TEST_2) - - - Condition personne_visible_Sphinx_1_condition = new Condition(personne_visible_Sphinx_1_conditions_ET); - List personne_obligatoire_Sphinx_1_conditions_ET = new ArrayList<>(); - - List personne_obligatoire_Sphinx_1_conditions_TEST_1 = new ArrayList<>(); - - personne_obligatoire_Sphinx_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_obligatoire_Sphinx_1_conditions_ET.add(personne_obligatoire_Sphinx_1_conditions_TEST_1) - - - Condition personne_obligatoire_Sphinx_1_condition = new Condition(personne_obligatoire_Sphinx_1_conditions_ET); - List personne_Sphinx_1_interactions = new ArrayList<>(); - - List personne_Sphinx_1_interaction_visible_1_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_visible_1_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_visible_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_visible_1_conditions_ET.add(personne_Sphinx_1_interaction_visible_1_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_visible_1_condition = new Condition(personne_Sphinx_1_interaction_visible_1_conditions_ET); - List personne_Sphinx_1_interaction_1_actions = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_action_visible_1_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_action_visible_1_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_1_action_visible_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_1_action_visible_1_conditions_ET.add(personne_Sphinx_1_interaction_1_action_visible_1_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_1_action_visible_1_condition = new Condition(personne_Sphinx_1_interaction_1_action_visible_1_conditions_ET); - List personne_Sphinx_1_interaction_1_action_fin_1_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_action_fin_1_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_1_action_fin_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_1_action_fin_1_conditions_ET.add(personne_Sphinx_1_interaction_1_action_fin_1_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_1_action_fin_1_condition = new Condition(personne_Sphinx_1_interaction_1_action_fin_1_conditions_ET); - List personne_Sphinx_1_interaction_1_descriptions = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_description_1_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_description_1_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_1_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_1_description_1_conditions_ET.add(personne_Sphinx_1_interaction_1_description_1_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_1_description_1_condition = new Condition(personne_Sphinx_1_interaction_1_description_1_conditions_ET); - - personne_Sphinx_1_interaction_1_descriptions.add( - new Description( - "la bonne reponse", - personne_Sphinx_1_interaction_1_description_1_condition - ) - ); - - List personne_Sphinx_1_interaction_1_action_1_connaissances = new ArrayList<>(); - personne_Sphinx_1_interaction_1_action_1_connaissances.add(connaissance_Reussite); - List personne_Sphinx_1_interaction_1_action_1_objets_conso = new ArrayList<>(); - List 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 personne_Sphinx_1_interaction_1_action_visible_2_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_action_visible_2_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_1_action_visible_2_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_1_action_visible_2_conditions_ET.add(personne_Sphinx_1_interaction_1_action_visible_2_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_1_action_visible_2_condition = new Condition(personne_Sphinx_1_interaction_1_action_visible_2_conditions_ET); - List personne_Sphinx_1_interaction_1_action_fin_2_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_action_fin_2_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_1_action_fin_2_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_1_action_fin_2_conditions_ET.add(personne_Sphinx_1_interaction_1_action_fin_2_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_1_action_fin_2_condition = new Condition(personne_Sphinx_1_interaction_1_action_fin_2_conditions_ET); - List personne_Sphinx_1_interaction_1_descriptions = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_description_1_conditions_ET = new ArrayList<>(); - - List personne_Sphinx_1_interaction_1_description_1_conditions_TEST_1 = new ArrayList<>(); - - personne_Sphinx_1_interaction_1_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - personne_Sphinx_1_interaction_1_description_1_conditions_ET.add(personne_Sphinx_1_interaction_1_description_1_conditions_TEST_1) - - - Condition personne_Sphinx_1_interaction_1_description_1_condition = new Condition(personne_Sphinx_1_interaction_1_description_1_conditions_ET); - - personne_Sphinx_1_interaction_1_descriptions.add( - new Description( - "la mauvaise reponse", - personne_Sphinx_1_interaction_1_description_1_condition - ) - ); - - List personne_Sphinx_1_interaction_1_action_2_connaissances = new ArrayList<>(); - List personne_Sphinx_1_interaction_1_action_2_objets_conso = new ArrayList<>(); - personne_Sphinx_1_interaction_1_action_1_objets_conso.add(objet_tentative); - List 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_conso, - personne_Sphinx_1_interaction_1_action_2_objets_recus, - personne_Sphinx_1_interaction_1_action_2_descriptions - ) - ); - - List personne_Sphinx_1_interaction_1_connaissances = new ArrayList<>(); - List personne_Sphinx_1_interaction_1_objets_conso = new ArrayList<>(); - List personne_Sphinx_1_interaction_1_objets_recus = new ArrayList<>(); - - personne_Sphinx_1_actions.add( - new Action( - 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 territoire_lieux = new ArrayList<>(); - List lieu_deposable_1_conditions_ET = new ArrayList<>(); - - List lieu_deposable_1_conditions_TEST_1 = new ArrayList<>(); - - lieu_deposable_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_deposable_1_conditions_ET.add(lieu_deposable_1_conditions_TEST_1) - - - Condition lieu_deposable_1_condition = new Condition(lieu_deposable_1_conditions_ET); - List lieu_depart_1_conditions_ET = new ArrayList<>(); - - List lieu_depart_1_conditions_TEST_1 = new ArrayList<>(); - - lieu_depart_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_depart_1_conditions_ET.add(lieu_depart_1_conditions_TEST_1) - - - Condition lieu_depart_1_condition = new Condition(lieu_depart_1_conditions_ET); - List lieu_fin_1_conditions_ET = new ArrayList<>(); - - List lieu_fin_1_conditions_TEST_1 = new ArrayList<>(); - - lieu_fin_1_conditions_TEST_1.add( - new ConditionBoolean(false) - ); - lieu_fin_1_conditions_ET.add(lieu_fin_1_conditions_TEST_1) - - - Condition lieu_fin_1_condition = new Condition(lieu_fin_1_conditions_ET); - List lieu_Enigme_1_descriptions = new ArrayList<>(); - - List lieu_Enigme_1_description_1_conditions_ET = new ArrayList<>(); - - List lieu_Enigme_1_description_1_conditions_TEST_1 = new ArrayList<>(); - - lieu_Enigme_1_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_Enigme_1_description_1_conditions_ET.add(lieu_Enigme_1_description_1_conditions_TEST_1) - - - Condition lieu_Enigme_1_description_1_condition = new Condition(lieu_Enigme_1_description_1_conditions_ET); - - lieu_Enigme_1_descriptions.add( - new Description( - "lieu de depart", - lieu_Enigme_1_description_1_condition - ) - ); - - List lieu_Enigme_1_personnes = new ArrayList<>(); - lieu_Enigme_1_personnes.add(objet_Sphinx); - List lieu_Enigme_1_objets = new ArrayList<>(); - List 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 lieu_deposable_2_conditions_ET = new ArrayList<>(); - - List lieu_deposable_2_conditions_TEST_1 = new ArrayList<>(); - - lieu_deposable_2_conditions_TEST_1.add( - new ConditionBoolean(false) - ); - lieu_deposable_2_conditions_ET.add(lieu_deposable_2_conditions_TEST_1) - - - Condition lieu_deposable_2_condition = new Condition(lieu_deposable_2_conditions_ET); - List lieu_depart_2_conditions_ET = new ArrayList<>(); - - List lieu_depart_2_conditions_TEST_1 = new ArrayList<>(); - - lieu_depart_2_conditions_TEST_1.add( - new ConditionBoolean(false) - ); - lieu_depart_2_conditions_ET.add(lieu_depart_2_conditions_TEST_1) - - - Condition lieu_depart_2_condition = new Condition(lieu_depart_2_conditions_ET); - List lieu_fin_2_conditions_ET = new ArrayList<>(); - - List lieu_fin_2_conditions_TEST_1 = new ArrayList<>(); - - lieu_fin_2_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_fin_2_conditions_ET.add(lieu_fin_2_conditions_TEST_1) - - - Condition lieu_fin_2_condition = new Condition(lieu_fin_2_conditions_ET); - List lieu_Succes_2_descriptions = new ArrayList<>(); - - List lieu_Succes_2_description_1_conditions_ET = new ArrayList<>(); - - List lieu_Succes_2_description_1_conditions_TEST_1 = new ArrayList<>(); - - lieu_Succes_2_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_Succes_2_description_1_conditions_ET.add(lieu_Succes_2_description_1_conditions_TEST_1) - - - Condition lieu_Succes_2_description_1_condition = new Condition(lieu_Succes_2_description_1_conditions_ET); - - lieu_Succes_2_descriptions.add( - new Description( - "lieu succes", - lieu_Succes_2_description_1_condition - ) - ); - - List lieu_Succes_2_personnes = new ArrayList<>(); - List lieu_Succes_2_objets = new ArrayList<>(); - List 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 lieu_deposable_3_conditions_ET = new ArrayList<>(); - - List lieu_deposable_3_conditions_TEST_1 = new ArrayList<>(); - - lieu_deposable_3_conditions_TEST_1.add( - new ConditionBoolean(false) - ); - lieu_deposable_3_conditions_ET.add(lieu_deposable_3_conditions_TEST_1) - - - Condition lieu_deposable_3_condition = new Condition(lieu_deposable_3_conditions_ET); - List lieu_depart_3_conditions_ET = new ArrayList<>(); - - List lieu_depart_3_conditions_TEST_1 = new ArrayList<>(); - - lieu_depart_3_conditions_TEST_1.add( - new ConditionBoolean(false) - ); - lieu_depart_3_conditions_ET.add(lieu_depart_3_conditions_TEST_1) - - - Condition lieu_depart_3_condition = new Condition(lieu_depart_3_conditions_ET); - List lieu_fin_3_conditions_ET = new ArrayList<>(); - - List lieu_fin_3_conditions_TEST_1 = new ArrayList<>(); - - lieu_fin_3_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_fin_3_conditions_ET.add(lieu_fin_3_conditions_TEST_1) - - - Condition lieu_fin_3_condition = new Condition(lieu_fin_3_conditions_ET); - List lieu_Echec_3_descriptions = new ArrayList<>(); - - List lieu_Echec_3_description_1_conditions_ET = new ArrayList<>(); - - List lieu_Echec_3_description_1_conditions_TEST_1 = new ArrayList<>(); - - lieu_Echec_3_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - lieu_Echec_3_description_1_conditions_ET.add(lieu_Echec_3_description_1_conditions_TEST_1) - - - Condition lieu_Echec_3_description_1_condition = new Condition(lieu_Echec_3_description_1_conditions_ET); - - lieu_Echec_3_descriptions.add( - new Description( - "lieu echec", - lieu_Echec_3_description_1_condition - ) - ); - - List lieu_Echec_3_personnes = new ArrayList<>(); - List lieu_Echec_3_objets = new ArrayList<>(); - List 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 territoire_chemins = new ArrayList<>(); - List chemin_ouvert_win_1_conditions_ET = new ArrayList<>(); - - List chemin_ouvert_win_1_conditions_TEST_1 = new ArrayList<>(); - - chemin_ouvert_win_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - chemin_ouvert_win_1_conditions_ET.add(chemin_ouvert_win_1_conditions_TEST_1) - - - Condition chemin_ouvert_win_1_condition = new Condition(chemin_ouvert_win_1_conditions_ET); - List chemin_visible_win_1_conditions_ET = new ArrayList<>(); - - List chemin_visible_win_1_conditions_TEST_1 = new ArrayList<>(); - - chemin_visible_win_1_conditions_TEST_1.add( - new ConditionConnaissance( - connaissance_Reussite, - false - ) - ); - chemin_visible_win_1_conditions_ET.add(chemin_visible_win_1_conditions_TEST_1) - - - Condition chemin_visible_win_1_condition = new Condition(chemin_visible_win_1_conditions_ET); - List chemin_obligatoire_win_1_conditions_ET = new ArrayList<>(); - - List chemin_obligatoire_win_1_conditions_TEST_1 = new ArrayList<>(); - - chemin_obligatoire_win_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - chemin_obligatoire_win_1_conditions_ET.add(chemin_obligatoire_win_1_conditions_TEST_1) - - - Condition chemin_obligatoire_win_1_condition = new Condition(chemin_obligatoire_win_1_conditions_ET); - List chemin_win_1_descriptions = new ArrayList<>(); - - List chemin_win_1_description_1_conditions_ET = new ArrayList<>(); - - List chemin_win_1_description_1_conditions_TEST_1 = new ArrayList<>(); - - chemin_win_1_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - chemin_win_1_description_1_conditions_ET.add(chemin_win_1_description_1_conditions_TEST_1) - - - Condition chemin_win_1_description_1_condition = new Condition(chemin_win_1_description_1_conditions_ET); - - chemin_win_1_descriptions.add( - new Description( - "Le chemin de la victoire !", - chemin_win_1_description_1_condition - ) - ); - - List chemin_win_1_connaissances = new ArrayList<>(); - List chemin_win_1_objet_recus = new ArrayList<>(); - List chemin_win_1_objet_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 chemin_ouvert_loose_2_conditions_ET = new ArrayList<>(); - - List chemin_ouvert_loose_2_conditions_TEST_1 = new ArrayList<>(); - - chemin_ouvert_loose_2_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - chemin_ouvert_loose_2_conditions_ET.add(chemin_ouvert_loose_2_conditions_TEST_1) - - - Condition chemin_ouvert_loose_2_condition = new Condition(chemin_ouvert_loose_2_conditions_ET); - List chemin_visible_loose_2_conditions_ET = new ArrayList<>(); - - List chemin_visible_loose_2_conditions_TEST_1 = new ArrayList<>(); - - chemin_visible_loose_2_conditions_TEST_1.add( - new ConditionObjet( - objet_tentatives, - "==", - 0 - ) - ); - chemin_visible_loose_2_conditions_ET.add(chemin_visible_loose_2_conditions_TEST_1) - - - Condition chemin_visible_loose_2_condition = new Condition(chemin_visible_loose_2_conditions_ET); - List chemin_obligatoire_loose_2_conditions_ET = new ArrayList<>(); - - List chemin_obligatoire_loose_2_conditions_TEST_1 = new ArrayList<>(); - - chemin_obligatoire_loose_2_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - chemin_obligatoire_loose_2_conditions_ET.add(chemin_obligatoire_loose_2_conditions_TEST_1) - - - Condition chemin_obligatoire_loose_2_condition = new Condition(chemin_obligatoire_loose_2_conditions_ET); - List chemin_loose_2_descriptions = new ArrayList<>(); - - List chemin_loose_2_description_1_conditions_ET = new ArrayList<>(); - - List chemin_loose_2_description_1_conditions_TEST_1 = new ArrayList<>(); - - chemin_loose_2_description_1_conditions_TEST_1.add( - new ConditionBoolean(true) - ); - chemin_loose_2_description_1_conditions_ET.add(chemin_loose_2_description_1_conditions_TEST_1) - - - Condition chemin_loose_2_description_1_condition = new Condition(chemin_loose_2_description_1_conditions_ET); - - chemin_loose_2_descriptions.add( - new Description( - "Le chemin de la loose !", - chemin_loose_2_description_1_condition - ) - ); - - List chemin_loose_2_connaissances = new ArrayList<>(); - List chemin_loose_2_objet_recus = new ArrayList<>(); - List chemin_loose_2_objet_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); - -} -} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Territoire.java b/runtime-workspace/fr.n7.game.examples/src-gen/Territoire.java new file mode 100644 index 0000000..9b4b329 --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Territoire.java @@ -0,0 +1,13 @@ +import java.util.List; + +public class Territoire { + List lieux; + List chemins; + + public Territoire( + List lieux, + List chemins) { + this.lieux = lieux; + this.chemins = chemins; + } +} diff --git a/runtime-workspace/fr.n7.game.examples/src-gen/Transformation.java b/runtime-workspace/fr.n7.game.examples/src-gen/Transformation.java new file mode 100644 index 0000000..e4b2aeb --- /dev/null +++ b/runtime-workspace/fr.n7.game.examples/src-gen/Transformation.java @@ -0,0 +1,16 @@ +import java.util.List; + +public class Transformation { + Condition possible; + List objetsSources; + List objetsResultats; + + public Transformation( + Condition possible, + List objetsSources, + List objetsResultats) { + this.possible = possible; + this.objetsSources = objetsSources; + this.objetsResultats = objetsResultats; + } +} diff --git a/workspace/fr.n7.game.toPrototype/bin/.gitignore b/workspace/fr.n7.game.toPrototype/bin/.gitignore deleted file mode 100644 index 44fde90..0000000 --- a/workspace/fr.n7.game.toPrototype/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/fr/ diff --git a/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.emtl b/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.emtl new file mode 100644 index 0000000..4093a05 --- /dev/null +++ b/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.emtl @@ -0,0 +1,8244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + + diff --git a/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.mtl b/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.mtl index f2b2f59..4f735ad 100644 --- a/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.mtl +++ b/workspace/fr.n7.game.toPrototype/bin/fr/n7/game/toPrototype/main/toPrototype.mtl @@ -1,10 +1,15 @@ [comment encoding = UTF-8 /] [module toPrototype('http://www.n7.fr/game/xtext/Game')] - [template public jeuToPrototype(jeu : Jeu)] [comment @main/] [file ('Prototype.java', false, 'UTF-8')] +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) { @@ -156,26 +161,26 @@ List territoire_chemins = new ArrayList<>(); [for (c : Nom | ch.connaissances)] chemin_[ch.nom.nom/]_[i/]_connaissances.add(connaissance_[c.nom/]); [/for] - List chemin_[ch.nom.nom/]_[i/]_objet_recus = new ArrayList<>(); + List chemin_[ch.nom.nom/]_[i/]_objets_recus = new ArrayList<>(); [for (o : Nom | ch.objetsRecus)] chemin_[ch.nom.nom/]_[i/]_objets_recus.add(objet_[o.nom/]); [/for] - List chemin_[ch.nom.nom/]_[i/]_objet_conso = new ArrayList<>(); + List chemin_[ch.nom.nom/]_[i/]_objets_conso = new ArrayList<>(); [for (o : Nom | ch.objetsConso)] chemin_[ch.nom.nom/]_[i/]_objets_conso.add(objet_[o.nom/]); [/for] - Chemin chemins_[ch.nom.nom/] new Chemin( + Chemin chemins_[ch.nom.nom/] = new Chemin( "[ch.nom.nom/]", lieu_[ch.lieuIn.nom/], lieu_[ch.lieuOut.nom/], chemin_ouvert_[ch.nom.nom/]_[i/]_condition, chemin_visible_[ch.nom.nom/]_[i/]_condition, chemin_obligatoire_[ch.nom.nom/]_[i/]_condition, - chemin_[ch.nom.nom/]_[i/]_connaissances + chemin_[ch.nom.nom/]_[i/]_connaissances, chemin_[ch.nom.nom/]_[i/]_objets_recus, chemin_[ch.nom.nom/]_[i/]_objets_conso, - chemin_[ch.nom.nom/]_[i/]_descriptions, + chemin_[ch.nom.nom/]_[i/]_descriptions ); territoire_chemins.add(chemins_[ch.nom.nom/]); @@ -190,10 +195,8 @@ List territoire_chemins = new ArrayList<>(); List [name/]_conditions_ET = new ArrayList<>(); [for (cET : ConditionEt | c.condition)] - List [name/]_conditions_TEST_[i/] = new ArrayList<>(); - [for (cTEST : ConditionTest | cET.conditionTest)] - [name/]_conditions_TEST_[i/].add( + [name/]_conditions_ET_[i/].add( [if (cTEST.oclIsKindOf(ConditionBoolean))] [let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)] new ConditionBoolean([cBOOL.valeur/]) @@ -215,7 +218,7 @@ List [name/]_conditions_ET = new ArrayList<>(); [/let] [/if] ); - [name/]_conditions_ET.add([name/]_conditions_TEST_[i/]) + [name/]_conditions_ET.add([name/]_conditions_TEST_[i/]); [/for] [/for] @@ -244,7 +247,7 @@ List [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)/] + [print_descriptions(a.descriptions, name + '_' + i.toString())/] List [name/]_action_[i/]_connaissances = new ArrayList<>(); [for (c : Nom | a.connaissances)] diff --git a/workspace/fr.n7.game.toPrototype/src/fr/n7/game/toPrototype/main/toPrototype.mtl b/workspace/fr.n7.game.toPrototype/src/fr/n7/game/toPrototype/main/toPrototype.mtl index f2b2f59..4f735ad 100644 --- a/workspace/fr.n7.game.toPrototype/src/fr/n7/game/toPrototype/main/toPrototype.mtl +++ b/workspace/fr.n7.game.toPrototype/src/fr/n7/game/toPrototype/main/toPrototype.mtl @@ -1,10 +1,15 @@ [comment encoding = UTF-8 /] [module toPrototype('http://www.n7.fr/game/xtext/Game')] - [template public jeuToPrototype(jeu : Jeu)] [comment @main/] [file ('Prototype.java', false, 'UTF-8')] +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) { @@ -156,26 +161,26 @@ List territoire_chemins = new ArrayList<>(); [for (c : Nom | ch.connaissances)] chemin_[ch.nom.nom/]_[i/]_connaissances.add(connaissance_[c.nom/]); [/for] - List chemin_[ch.nom.nom/]_[i/]_objet_recus = new ArrayList<>(); + List chemin_[ch.nom.nom/]_[i/]_objets_recus = new ArrayList<>(); [for (o : Nom | ch.objetsRecus)] chemin_[ch.nom.nom/]_[i/]_objets_recus.add(objet_[o.nom/]); [/for] - List chemin_[ch.nom.nom/]_[i/]_objet_conso = new ArrayList<>(); + List chemin_[ch.nom.nom/]_[i/]_objets_conso = new ArrayList<>(); [for (o : Nom | ch.objetsConso)] chemin_[ch.nom.nom/]_[i/]_objets_conso.add(objet_[o.nom/]); [/for] - Chemin chemins_[ch.nom.nom/] new Chemin( + Chemin chemins_[ch.nom.nom/] = new Chemin( "[ch.nom.nom/]", lieu_[ch.lieuIn.nom/], lieu_[ch.lieuOut.nom/], chemin_ouvert_[ch.nom.nom/]_[i/]_condition, chemin_visible_[ch.nom.nom/]_[i/]_condition, chemin_obligatoire_[ch.nom.nom/]_[i/]_condition, - chemin_[ch.nom.nom/]_[i/]_connaissances + chemin_[ch.nom.nom/]_[i/]_connaissances, chemin_[ch.nom.nom/]_[i/]_objets_recus, chemin_[ch.nom.nom/]_[i/]_objets_conso, - chemin_[ch.nom.nom/]_[i/]_descriptions, + chemin_[ch.nom.nom/]_[i/]_descriptions ); territoire_chemins.add(chemins_[ch.nom.nom/]); @@ -190,10 +195,8 @@ List territoire_chemins = new ArrayList<>(); List [name/]_conditions_ET = new ArrayList<>(); [for (cET : ConditionEt | c.condition)] - List [name/]_conditions_TEST_[i/] = new ArrayList<>(); - [for (cTEST : ConditionTest | cET.conditionTest)] - [name/]_conditions_TEST_[i/].add( + [name/]_conditions_ET_[i/].add( [if (cTEST.oclIsKindOf(ConditionBoolean))] [let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)] new ConditionBoolean([cBOOL.valeur/]) @@ -215,7 +218,7 @@ List [name/]_conditions_ET = new ArrayList<>(); [/let] [/if] ); - [name/]_conditions_ET.add([name/]_conditions_TEST_[i/]) + [name/]_conditions_ET.add([name/]_conditions_TEST_[i/]); [/for] [/for] @@ -244,7 +247,7 @@ List [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)/] + [print_descriptions(a.descriptions, name + '_' + i.toString())/] List [name/]_action_[i/]_connaissances = new ArrayList<>(); [for (c : Nom | a.connaissances)] diff --git a/workspace/fr.n7.game.xtext.tests/xtend-gen/fr/n7/game/xtext/tests/.GameParsingTest.xtendbin b/workspace/fr.n7.game.xtext.tests/xtend-gen/fr/n7/game/xtext/tests/.GameParsingTest.xtendbin index 93324e6..047e792 100644 Binary files a/workspace/fr.n7.game.xtext.tests/xtend-gen/fr/n7/game/xtext/tests/.GameParsingTest.xtendbin and b/workspace/fr.n7.game.xtext.tests/xtend-gen/fr/n7/game/xtext/tests/.GameParsingTest.xtendbin differ diff --git a/workspace/fr.n7.game.xtext/xtend-gen/fr/n7/game/xtext/generator/.GameGenerator.xtendbin b/workspace/fr.n7.game.xtext/xtend-gen/fr/n7/game/xtext/generator/.GameGenerator.xtendbin index b6ef35a..e63c5c0 100644 Binary files a/workspace/fr.n7.game.xtext/xtend-gen/fr/n7/game/xtext/generator/.GameGenerator.xtendbin and b/workspace/fr.n7.game.xtext/xtend-gen/fr/n7/game/xtext/generator/.GameGenerator.xtendbin differ diff --git a/workspace/fr.n7.petrinet.toTINA/bin/.gitignore b/workspace/fr.n7.petrinet.toTINA/bin/.gitignore deleted file mode 100644 index 44fde90..0000000 --- a/workspace/fr.n7.petrinet.toTINA/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/fr/ diff --git a/workspace/fr.n7.petrinet.toTINA/bin/fr/n7/petrinet/toTINA/main/toTINA.emtl b/workspace/fr.n7.petrinet.toTINA/bin/fr/n7/petrinet/toTINA/main/toTINA.emtl new file mode 100644 index 0000000..5050566 --- /dev/null +++ b/workspace/fr.n7.petrinet.toTINA/bin/fr/n7/petrinet/toTINA/main/toTINA.emtl @@ -0,0 +1,1181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +