feat: java fini ?

This commit is contained in:
Laurent Fainsin 2022-01-18 23:29:53 +01:00
parent 275f849c47
commit 9a145618c7
18 changed files with 2844 additions and 2478 deletions

View file

@ -50,8 +50,4 @@ public class Action {
return "No desc";
}
public static Action search(List<Action> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -61,8 +61,4 @@ public class Chemin {
return this.lieuOut;
}
public static Chemin search(List<Chemin> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -24,8 +24,4 @@ public class Connaissance {
return "(no description)";
}
public static Connaissance search(List<Connaissance> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -19,8 +19,4 @@ public class Description {
return this.texte;
}
public static Description search(List<Description> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -25,7 +25,7 @@ public class Interaction {
this.actions = actions;
}
void interragir(BufferedReader reader, Lieu lieu) {
void interragir(BufferedReader reader) {
for (Objet o : this.objetsRecus) {
Jeu.explorateur.objets.add(o);
@ -40,21 +40,21 @@ public class Interaction {
}
while (true) {
System.out.println(this);
System.out.print("\nChoix : ");
List<Action> actions_choix = new ArrayList<>();
Jeu.clearScreen();
List<Action> interaction_choix = new ArrayList<>();
for (Action a : this.actions) {
if (a.visible.evaluer()) {
actions_choix.add(a);
System.out.println("[" + interaction_choix.size() + "] " + a);
interaction_choix.add(a);
}
}
System.out.print("\nChoix : ");
int choix = 0;
Action a = null;
try {
choix = Integer.parseInt(reader.readLine());
a = actions_choix.get(choix);
a = interaction_choix.get(choix);
} catch (Exception e) {
continue;
}
@ -66,21 +66,4 @@ public class Interaction {
}
}
@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;
}
public static Interaction search(List<Interaction> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -2,24 +2,32 @@ import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Jeu {
public static Explorateur explorateur;
Territoire territoire;
List<Objet> objets;
List<Connaissance> connaissances;
List<Personne> personnes;
List<Transformation> transformations;
Map<String, Objet> objets;
Map<String, Connaissance> connaissances;
Map<String, Personne> personnes;
Map<String, Transformation> transformations;
Lieu lieu = null;
Personne personne = null;
static Lieu lieu = null;
static void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
System.out.println("Lieu actuel: " + lieu + "\n");
System.out.println("Explorateur:\n" + Jeu.explorateur + "\n");
System.out.println("-".repeat(50));
}
public Jeu(
Territoire territoire,
List<Objet> objets,
List<Connaissance> connaissances,
List<Personne> personnes,
List<Transformation> transformations) {
Map<String, Objet> objets,
Map<String, Connaissance> connaissances,
Map<String, Personne> personnes,
Map<String, Transformation> transformations) {
this.territoire = territoire;
this.objets = objets;
this.connaissances = connaissances;
@ -27,16 +35,11 @@ public class Jeu {
this.transformations = transformations;
}
public static void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
void jouer() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// on cherche le (premier) lieu de départ
for (Lieu l : territoire.lieux) {
for (Lieu l : territoire.lieux.values()) {
if (l.depart.evaluer()) {
lieu = l;
break;
@ -50,32 +53,28 @@ public class Jeu {
List<Object> choix = new ArrayList<>();
clearScreen();
System.out.println("Lieu actuel: " + lieu + "\n");
System.out.println("Explorateur:\n" + Jeu.explorateur + "\n");
System.out.println("-".repeat(50));
if (lieu.deposable.evaluer()) {
System.out.println("[" + choix.size() + "] déposer/ramasser");
choix.add(lieu);
}
for (Personne p : lieu.personnes) {
if (p.visible.evaluer() && p.obligatoire.evaluer() || p == personne) {
if (p.visible.evaluer() && p.obligatoire.evaluer()) {
System.out.println(p + ":");
p.interragir(reader, lieu);
personne = null;
p.interragir(reader);
continue mainloop;
} else if (lieu.personnes.contains(p) && p.visible.evaluer()) {
System.out.println("[" + choix.size() + "] " + p);
choix.add(p);
}
}
for (Chemin c : territoire.chemins) {
for (Chemin c : territoire.chemins.values()) {
if (c.lieuIn == lieu) {
if (c.visible.evaluer() && c.obligatoire.evaluer() && c.ouvert.evaluer()) {
lieu = c.lieuOut;
continue mainloop;
}
}
}
for (Chemin c : territoire.chemins) {
if (c.lieuIn == lieu) {
if (c.visible.evaluer()) {
} else if (c.visible.evaluer()) {
if (c.ouvert.evaluer()) {
System.out.println("[" + choix.size() + "] " + c);
choix.add(c);
@ -86,24 +85,17 @@ public class Jeu {
}
}
for (Personne p : personnes) {
if (lieu.personnes.contains(p)) {
if (p.visible.evaluer()) {
System.out.println("[" + choix.size() + "] " + p);
choix.add(p);
}
}
}
try {
System.out.print("\nChoix : ");
selection = Integer.parseInt(reader.readLine());
Object choix_selection = choix.get(selection);
if (choix_selection instanceof Chemin) {
if (choix_selection instanceof Lieu) {
((Lieu) choix_selection).interragir(reader);
} else if (choix_selection instanceof Chemin) {
lieu = ((Chemin) choix_selection).emprunter();
} else if (choix_selection instanceof Personne) {
personne = (Personne) choix_selection;
((Personne) choix_selection).interragir(reader);
} else {
throw new UnsupportedOperationException();
}
@ -116,7 +108,3 @@ public class Jeu {
System.out.println("FIN : " + lieu.nom);
}
}
// TODO: faire le truc des dépots dans les lieux
// TODO: arreter de créer pleins d'objets et créer des objets anonymes que l'on
// place dans une hashmap avec son nom ?

View file

@ -1,3 +1,5 @@
import java.io.BufferedReader;
import java.util.ArrayList;
import java.util.List;
public class Lieu {
@ -34,8 +36,39 @@ public class Lieu {
return nom;
}
public static Lieu search(List<Lieu> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
public void interragir(BufferedReader reader) {
while (true) {
Jeu.clearScreen();
List<Objet> actions_choix = new ArrayList<>();
for (Objet o : this.objets) {
System.out.println("[" + actions_choix.size() + "] Ramasser " + o);
actions_choix.add(o);
}
for (Objet o : Jeu.explorateur.objets) {
System.out.println("[" + actions_choix.size() + "] Déposer " + o);
actions_choix.add(o);
}
System.out.print("\nChoix : ");
int choix = 0;
Objet obj = null;
try {
choix = Integer.parseInt(reader.readLine());
obj = actions_choix.get(choix);
} catch (Exception e) {
continue;
}
if (choix < this.objets.size()) {
Jeu.explorateur.objets.add(obj);
this.objets.remove(obj);
break;
} else if (choix < actions_choix.size()) {
this.objets.add(obj);
Jeu.explorateur.objets.remove(obj);
break;
}
}
}
}

View file

@ -27,9 +27,4 @@ public class Objet {
return "(no description)";
}
public static Objet search(List<Objet> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -1,8 +1,4 @@
import java.util.List;
import javax.print.attribute.standard.PresentationDirection;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Personne {
@ -22,10 +18,13 @@ public class Personne {
this.interactions = interactions;
}
void interragir(BufferedReader reader, Lieu lieu) {
void interragir(BufferedReader reader) {
Jeu.clearScreen();
System.out.println(this);
for (Interaction i : this.interactions) {
if (i.visible.evaluer()) {
i.interragir(reader, lieu);
i.interragir(reader);
}
break;
}
@ -35,9 +34,4 @@ public class Personne {
public String toString() {
return nom;
}
public static Personne search(List<Personne> list, String name) {
return list.stream().filter(o -> o.nom.equals(name)).findFirst()
.orElseThrow(() -> new IllegalArgumentException("No data found"));
}
}

View file

@ -1,8 +1,5 @@
import java.util.List;
import java.util.ArrayList;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Map;
import static java.util.Map.entry;
@ -19,33 +16,48 @@ Map<String, Objet> jeu_objets = Map.ofEntries(
new Condition(
List.of(
List.of(
new ConditionBoolean(true)
,
new ConditionBoolean(true)
,
new ConditionBoolean(true)
new ConditionBoolean(
true
),
new ConditionBoolean(
true
),
new ConditionBoolean(
true
)
),
List.of(
new ConditionBoolean(true)
,
new ConditionBoolean(false)
new ConditionBoolean(
true
),
new ConditionBoolean(
false
)
),
List.of(
new ConditionBoolean(false)
new ConditionBoolean(
false
)
)
)
),
List.of(
new Description(
"Description1",
"warpToken description",
new Condition(
List.of(
List.of(
new ConditionBoolean(true)
new ConditionBoolean(
true
)
)
)
)
@ -61,19 +73,24 @@ Map<String, Objet> jeu_objets = Map.ofEntries(
new Condition(
List.of(
List.of(
new ConditionBoolean(true)
new ConditionBoolean(
true
)
)
)
),
List.of(
new Description(
"Description1",
"warpTicket description",
new Condition(
List.of(
List.of(
new ConditionBoolean(true)
new ConditionBoolean(
true
)
)
)
)
@ -89,19 +106,24 @@ Map<String, Objet> jeu_objets = Map.ofEntries(
new Condition(
List.of(
List.of(
new ConditionBoolean(true)
new ConditionBoolean(
true
)
)
)
),
List.of(
new Description(
"Description1",
"warpReceipt description",
new Condition(
List.of(
List.of(
new ConditionBoolean(true)
new ConditionBoolean(
true
)
)
)
)
@ -112,215 +134,504 @@ Map<String, Objet> jeu_objets = Map.ofEntries(
);
// "Connaissances"
Map<String, Objet> jeu_objets = Map.ofEntries(
Map<String, Objet> jeu_objets = Map.ofEntries(
Map<String, Connaissance> jeu_connaissances = Map.ofEntries(
);
// "Transformations"
List<Transformation> jeu_transformations = new ArrayList<>();
Map<String, Transformation> jeu_transformations = Map.ofEntries(
);
// "Explorateur"
List<Objet> explorateur_inventaire = new ArrayList<>();
explorateur_inventaire.addAll(
List.of(
jeu_objets.get("warpToken")
)
);
List<Connaissance> explorateur_connaissances = new ArrayList<>();
Jeu.explorateur = new Explorateur(
5,
explorateur_connaissances,
explorateur_inventaire
new ArrayList<>(List.of(
)),
new ArrayList<>(List.of(
jeu_objets.get("warpTicket")
))
);
// "Personnes"
List<Personne> jeu_personnes = new ArrayList<>();
List<Interaction> personne_cashier_1_interactions = new ArrayList<>();
List<Action> personne_cashier_1_interaction_1_actions = new ArrayList<>();
List<Connaissance> personne_cashier_1_interaction_1_action_1_connaissances = new ArrayList<>();
List<Objet> personne_cashier_1_interaction_1_action_1_objets_conso = new ArrayList<>();
personne_cashier_1_interaction_1_action_1_objets_conso.add(objet_warpTicket);
List<Objet> personne_cashier_1_interaction_1_action_1_objets_recus = new ArrayList<>();
personne_cashier_1_interaction_1_action_1_objets_recus.add(objet_warpToken);
personne_cashier_1_interaction_1_action_1_objets_recus.add(objet_warpReceipt);
personne_cashier_1_interaction_1_actions.add(
new Action(
personne_cashier_1_interaction_1_action_visible_1_condition,
personne_cashier_1_interaction_1_action_fin_1_condition,
personne_cashier_1_interaction_1_action_1_connaissances,
personne_cashier_1_interaction_1_action_1_objets_recus,
personne_cashier_1_interaction_1_action_1_objets_conso,
personne_cashier_1_interaction_1_action_1_descriptions
)
);
List<Connaissance> personne_cashier_1_interaction_1_action_2_connaissances = new ArrayList<>();
List<Objet> personne_cashier_1_interaction_1_action_2_objets_conso = new ArrayList<>();
List<Objet> personne_cashier_1_interaction_1_action_2_objets_recus = new ArrayList<>();
personne_cashier_1_interaction_1_actions.add(
new Action(
personne_cashier_1_interaction_1_action_visible_2_condition,
personne_cashier_1_interaction_1_action_fin_2_condition,
personne_cashier_1_interaction_1_action_2_connaissances,
personne_cashier_1_interaction_1_action_2_objets_recus,
personne_cashier_1_interaction_1_action_2_objets_conso,
personne_cashier_1_interaction_1_action_2_descriptions
)
);
List<Connaissance> personne_cashier_1_interaction_1_connaissances = new ArrayList<>();
List<Objet> personne_cashier_1_interaction_1_objets_conso = new ArrayList<>();
List<Objet> personne_cashier_1_interaction_1_objets_recus = new ArrayList<>();
personne_cashier_1_interactions.add(
new Interaction(
personne_cashier_1_interaction_visible_1_condition,
personne_cashier_1_interaction_1_connaissances,
personne_cashier_1_interaction_1_objets_conso,
personne_cashier_1_interaction_1_objets_recus,
personne_cashier_1_interaction_1_actions
)
);
Personne personne_cashier = new Personne(
Map<String, Personne> jeu_personnes = Map.ofEntries(
entry(
"cashier",
personne_visible_cashier_1_condition,
personne_obligatoire_cashier_1_condition,
personne_cashier_1_interactions
);
jeu_personnes.add(personne_cashier);
new Personne(
"cashier",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
List.of(
new Interaction(
"Parler",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new ArrayList<>(List.of(
)),
new ArrayList<>(List.of(
)), // TODO: inverser recu et conso
new ArrayList<>(List.of(
)),
List.of(
new Action(
"Acheter",
new Condition(
List.of(
List.of(
new ConditionObjet(
jeu_objets.get("warpTicket"),
"==",
1
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new ArrayList<>(List.of(
)),
new ArrayList<>(List.of(
jeu_objets.get("warpToken"),
jeu_objets.get("warpReceipt")
)),
new ArrayList<>(List.of(
jeu_objets.get("warpTicket")
)),
List.of(
new Description(
"Description1",
"Acheter un ticket",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
)
)
)
),
new Action(
"Quitter",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new ArrayList<>(List.of(
)),
new ArrayList<>(List.of(
)),
new ArrayList<>(List.of(
)),
List.of(
new Description(
"Description1",
"Quitter",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
)
)
)
)
)
)
)
)
)
);
// "Lieux"
List<Lieu> territoire_lieux = new ArrayList<>();
List<Personne> lieu_preWarp_1_personnes = new ArrayList<>();
lieu_preWarp_1_personnes.add(personne_cashier);
List<Objet> lieu_preWarp_1_objets = new ArrayList<>();
List<Connaissance> lieu_preWarp_1_connaissances = new ArrayList<>();
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
Lieu lieu_preWarp = new Lieu(
Map<String, Lieu> territoire_lieux = Map.ofEntries(
entry(
"preWarp",
lieu_deposable_1_condition,
lieu_depart_1_condition,
lieu_fin_1_condition,
lieu_preWarp_1_personnes,
lieu_preWarp_1_descriptions,
lieu_preWarp_1_objets,
lieu_preWarp_1_connaissances
);
territoire_lieux.add(lieu_preWarp);
List<Personne> lieu_postWarp_2_personnes = new ArrayList<>();
List<Objet> lieu_postWarp_2_objets = new ArrayList<>();
List<Connaissance> lieu_postWarp_2_connaissances = new ArrayList<>();
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
Lieu lieu_postWarp = new Lieu(
new Lieu(
"preWarp",
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
List.of(
jeu_personnes.get("cashier")
),
List.of(
new Description(
"Description1",
"preWarp description",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
)
)
),
new ArrayList<>(List.of(
)),
List.of(
)
)
),
entry(
"postWarp",
lieu_deposable_2_condition,
lieu_depart_2_condition,
lieu_fin_2_condition,
lieu_postWarp_2_personnes,
lieu_postWarp_2_descriptions,
lieu_postWarp_2_objets,
lieu_postWarp_2_connaissances
);
territoire_lieux.add(lieu_postWarp);
List<Personne> lieu_END_3_personnes = new ArrayList<>();
List<Objet> lieu_END_3_objets = new ArrayList<>();
List<Connaissance> lieu_END_3_connaissances = new ArrayList<>();
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
Lieu lieu_END = new Lieu(
new Lieu(
"postWarp",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
List.of(
),
List.of(
new Description(
"Description1",
"postWarp description",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
)
)
),
new ArrayList<>(List.of(
)),
List.of(
)
)
),
entry(
"END",
lieu_deposable_3_condition,
lieu_depart_3_condition,
lieu_fin_3_condition,
lieu_END_3_personnes,
lieu_END_3_descriptions,
lieu_END_3_objets,
lieu_END_3_connaissances
);
territoire_lieux.add(lieu_END);
new Lieu(
"END",
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
List.of(
),
List.of(
new Description(
"Description1",
"END description",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
)
)
),
new ArrayList<>(List.of(
)),
List.of(
)
)
)
);
// "Chemins"
List<Chemin> territoire_chemins = new ArrayList<>();
List<Connaissance> chemin_Warp_1_connaissances = new ArrayList<>();
List<Objet> chemin_Warp_1_objets_recus = new ArrayList<>();
List<Objet> chemin_Warp_1_objets_conso = new ArrayList<>();
chemin_Warp_1_objets_conso.add(objet_warpToken);
Chemin chemins_Warp = new Chemin(
Map<String, Chemin> territoire_chemins = Map.ofEntries(
entry(
"Warp",
lieu_preWarp,
lieu_postWarp,
chemin_ouvert_Warp_1_condition,
chemin_visible_Warp_1_condition,
chemin_obligatoire_Warp_1_condition,
chemin_Warp_1_connaissances,
chemin_Warp_1_objets_recus,
chemin_Warp_1_objets_conso,
chemin_Warp_1_descriptions
);
territoire_chemins.add(chemins_Warp);
List<Connaissance> chemin_EndChemin_2_connaissances = new ArrayList<>();
List<Objet> chemin_EndChemin_2_objets_recus = new ArrayList<>();
List<Objet> chemin_EndChemin_2_objets_conso = new ArrayList<>();
Chemin chemins_EndChemin = new Chemin(
new Chemin(
"Warp",
territoire_lieux.get("preWarp"),
territoire_lieux.get("postWarp"),
new Condition(
List.of(
List.of(
new ConditionObjet(
jeu_objets.get("warpToken"),
">",
0
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
List.of(
),
List.of(
),
List.of(
jeu_objets.get("warpToken")
),
List.of(
new Description(
"DescriptionToken",
"Warp description (need token)",
new Condition(
List.of(
List.of(
new ConditionObjet(
jeu_objets.get("warpToken"),
"==",
0
)
)
)
)
),
new Description(
"DescriptionNoToken",
"Warp description (token acquired)",
new Condition(
List.of(
List.of(
new ConditionObjet(
jeu_objets.get("warpToken"),
"==",
1
)
)
)
)
)
)
)
),
entry(
"EndChemin",
lieu_postWarp,
lieu_END,
chemin_ouvert_EndChemin_2_condition,
chemin_visible_EndChemin_2_condition,
chemin_obligatoire_EndChemin_2_condition,
chemin_EndChemin_2_connaissances,
chemin_EndChemin_2_objets_recus,
chemin_EndChemin_2_objets_conso,
chemin_EndChemin_2_descriptions
);
new Chemin(
"EndChemin",
territoire_lieux.get("postWarp"),
territoire_lieux.get("END"),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
),
new Condition(
List.of(
List.of(
new ConditionBoolean(
false
)
)
)
),
List.of(
),
List.of(
),
List.of(
),
List.of(
new Description(
"DescriptionToken",
"END description",
new Condition(
List.of(
List.of(
new ConditionBoolean(
true
)
)
)
)
)
)
)
)
);
territoire_chemins.add(chemins_EndChemin);
// Territoire
Territoire jeu_territoire = new Territoire(territoire_lieux, territoire_chemins);
Territoire jeu_territoire = new Territoire(territoire_lieux, territoire_chemins);
// Jeu
Jeu ze_GAME = new Jeu(
jeu_territoire,
jeu_objets,
jeu_connaissances,
jeu_personnes,
jeu_transformations
);
Jeu ze_GAME = new Jeu(
jeu_territoire,
jeu_objets,
jeu_connaissances,
jeu_personnes,
jeu_transformations
);
ze_GAME.jouer();
ze_GAME.jouer();
}
}

View file

@ -1,12 +1,12 @@
import java.util.List;
import java.util.Map;
public class Territoire {
List<Lieu> lieux;
List<Chemin> chemins;
Map<String, Lieu> lieux;
Map<String, Chemin> chemins;
public Territoire(
List<Lieu> lieux,
List<Chemin> chemins) {
Map<String, Lieu> lieux,
Map<String, Chemin> chemins) {
this.lieux = lieux;
this.chemins = chemins;
}

View file

@ -1 +0,0 @@
/fr/

View file

@ -6,9 +6,6 @@
[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;
import java.util.Map;
import static java.util.Map.entry;
@ -57,12 +54,12 @@ Map<String, Transformation> jeu_transformations = Map.ofEntries(
[print_condition(t.condition)/],
List.of(
[for (o : Objet | t.objetsIn)]
jeu_connaissances.get("[o.name/]")[if (i <> t.objetsIn->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> t.objetsIn->size())],[/if]
[/for]
),
List.of(
[for (o : Objet | t.objetsOut)]
jeu_connaissances.get("[o.name/]")[if (i <> t.objetsOut->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> t.objetsOut->size())],[/if]
[/for]
)
)
@ -74,16 +71,16 @@ Map<String, Transformation> jeu_transformations = Map.ofEntries(
// "Explorateur"
Jeu.explorateur = new Explorateur(
[jeu.explorateur.tailleInventaire/],
List.of(
new ArrayList<>(List.of(
[for (c : Connaissance | jeu.explorateur.connaissances)]
jeu_connaissances.get("[c.name/]")[if (i <> jeu.explorateur.connaissances->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | jeu.explorateur.objets)]
jeu_objets.get("[o.name/]")[if (i <> jeu.explorateur.objets->size())],[/if]
[/for]
)
))
);
[comment Personnes /]
@ -119,14 +116,14 @@ Map<String, Lieu> territoire_lieux = Map.ofEntries(
[/for]
),
[print_descriptions(l.descriptions)/],
List.of(
new ArrayList<>(List.of(
[for (o : Objet | l.objets)]
jeu_personnes.get("[o.name/]")[if (i <> l.objets->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> l.objets->size())],[/if]
[/for]
),
)),
List.of(
[for (c : Connaissance | l.connaissances)]
jeu_personnes.get("[c.name/]")[if (i <> l.connaissances->size())],[/if]
jeu_connaissances.get("[c.name/]")[if (i <> l.connaissances->size())],[/if]
[/for]
)
)
@ -136,7 +133,6 @@ Map<String, Lieu> territoire_lieux = Map.ofEntries(
[comment Chemins /]
// "Chemins"
Map<String, Chemin> territoire_chemins = Map.ofEntries(
[for (c : Chemin | jeu.territoire.chemins)]
entry(
@ -144,7 +140,7 @@ Map<String, Chemin> territoire_chemins = Map.ofEntries(
new Chemin(
"[c.name/]",
territoire_lieux.get("[c.lieuIn.name/]"),
territoire_lieux.get("[c.lieuOut.name/]")
territoire_lieux.get("[c.lieuOut.name/]"),
[print_condition(c.ouvert)/],
[print_condition(c.visible)/],
[print_condition(c.obligatoire)/],
@ -155,17 +151,17 @@ Map<String, Chemin> territoire_chemins = Map.ofEntries(
),
List.of(
[for (o : Objet | c.objetsRecus)]
jeu_personnes.get("[o.name/]")[if (i <> c.objetsRecus->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> c.objetsRecus->size())],[/if]
[/for]
),
List.of(
[for (o : Objet | c.objetsConso)]
jeu_personnes.get("[o.name/]")[if (i <> c.objetsConso->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> c.objetsConso->size())],[/if]
[/for]
),
[print_descriptions(c.descriptions)/]
)
)[if (i <> jeu.territoire.lieux->size())],[/if]
)[if (i <> jeu.territoire.chemins->size())],[/if]
[/for]
);
@ -196,26 +192,28 @@ new Condition(
[for (cET : ConditionEt | c.condition)]
List.of(
[for (cTEST : ConditionTest | cET.conditionTest)]
[if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean([cBOOL.valeur/])
[/let]
[elseif (cTEST.oclIsKindOf(ConditionConnaissance))]
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance(
connaissance_[cCONN.connaissance.name/],
[if (cCONN.negation = '!')]true[else]false[/if]
)
[/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))]
[let cOBJET : ConditionObjet = cTEST.oclAsType(ConditionObjet)]
new ConditionObjet(
objet_[cOBJET.objet.name/],
"[cOBJET.comparateur/]",
[cOBJET.nombre/]
)
[/let]
[/if][if (i < cET.conditionTest->size())],[/if]
[if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean(
[cBOOL.valeur/]
[/let]
[elseif (cTEST.oclIsKindOf(ConditionConnaissance))]
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance(
jeu_connaissances.get("[cCONN.connaissance.name/]"),
[if (cCONN.negation = '!')]true[else]false[/if]
[/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))]
[let cOBJET : ConditionObjet = cTEST.oclAsType(ConditionObjet)]
new ConditionObjet(
jeu_objets.get("[cOBJET.objet.name/]"),
"[cOBJET.comparateur/]",
[cOBJET.nombre/]
[/let]
[/if]
)[if (i < cET.conditionTest->size())],[/if]
[/for]
)[if (i < c.condition->size())],[/if]
[/for]
@ -227,7 +225,7 @@ new Condition(
List.of(
[for (d : Description | ds)]
new Description(
"[d.name/]"
"[d.name/]",
"[d.texte/]",
[print_condition(d.condition)/]
)[if (i < ds->size())],[/if]
@ -239,23 +237,25 @@ List.of(
List.of(
[for (a : Action | as)]
new Action(
"[a.name/]",
[print_condition(a.visible)/],
[print_condition(a.finInteraction)/],
List.of(
new ArrayList<>(List.of(
[for (co : Connaissance | a.connaissances)]
jeu_connaissances.get("[co.name/]")[if (i <> a.connaissances->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | a.objetsRecus)]
jeu_personnes.get("[o.name/]")[if (i <> a.objetsRecus->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> a.objetsRecus->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | a.objetsConso)]
jeu_personnes.get("[o.name/]")[if (i <> a.objetsConso->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> a.objetsConso->size())],[/if]
[/for]
),
)),
[print_descriptions(a.descriptions)/]
)[if (i < as->size())],[/if]
[/for]
)
@ -265,23 +265,23 @@ List.of(
List.of(
[for (it : Interaction | is)]
new Interaction(
"[it.name/]"
"[it.name/]",
[print_condition(it.visible)/],
List.of(
new ArrayList<>(List.of(
[for (co : Connaissance | it.connaissances)]
jeu_connaissances.get("[co.name/]")[if (i <> it.connaissances->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | it.objetsConso)]
jeu_personnes.get("[o.name/]")[if (i <> it.objetsConso->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> it.objetsConso->size())],[/if]
[/for]
), // TODO: inverser recu et conso
List.of(
)), // TODO: inverser recu et conso
new ArrayList<>(List.of(
[for (o : Objet | it.objetsRecus)]
jeu_personnes.get("[o.name/]")[if (i <> it.objetsRecus->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> it.objetsRecus->size())],[/if]
[/for]
),
)),
[print_actions(it.actions)/]
)[if (i < is->size())],[/if]
[/for]

View file

@ -6,9 +6,6 @@
[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;
import java.util.Map;
import static java.util.Map.entry;
@ -57,12 +54,12 @@ Map<String, Transformation> jeu_transformations = Map.ofEntries(
[print_condition(t.condition)/],
List.of(
[for (o : Objet | t.objetsIn)]
jeu_connaissances.get("[o.name/]")[if (i <> t.objetsIn->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> t.objetsIn->size())],[/if]
[/for]
),
List.of(
[for (o : Objet | t.objetsOut)]
jeu_connaissances.get("[o.name/]")[if (i <> t.objetsOut->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> t.objetsOut->size())],[/if]
[/for]
)
)
@ -74,16 +71,16 @@ Map<String, Transformation> jeu_transformations = Map.ofEntries(
// "Explorateur"
Jeu.explorateur = new Explorateur(
[jeu.explorateur.tailleInventaire/],
List.of(
new ArrayList<>(List.of(
[for (c : Connaissance | jeu.explorateur.connaissances)]
jeu_connaissances.get("[c.name/]")[if (i <> jeu.explorateur.connaissances->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | jeu.explorateur.objets)]
jeu_objets.get("[o.name/]")[if (i <> jeu.explorateur.objets->size())],[/if]
[/for]
)
))
);
[comment Personnes /]
@ -119,14 +116,14 @@ Map<String, Lieu> territoire_lieux = Map.ofEntries(
[/for]
),
[print_descriptions(l.descriptions)/],
List.of(
new ArrayList<>(List.of(
[for (o : Objet | l.objets)]
jeu_personnes.get("[o.name/]")[if (i <> l.objets->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> l.objets->size())],[/if]
[/for]
),
)),
List.of(
[for (c : Connaissance | l.connaissances)]
jeu_personnes.get("[c.name/]")[if (i <> l.connaissances->size())],[/if]
jeu_connaissances.get("[c.name/]")[if (i <> l.connaissances->size())],[/if]
[/for]
)
)
@ -136,7 +133,6 @@ Map<String, Lieu> territoire_lieux = Map.ofEntries(
[comment Chemins /]
// "Chemins"
Map<String, Chemin> territoire_chemins = Map.ofEntries(
[for (c : Chemin | jeu.territoire.chemins)]
entry(
@ -144,7 +140,7 @@ Map<String, Chemin> territoire_chemins = Map.ofEntries(
new Chemin(
"[c.name/]",
territoire_lieux.get("[c.lieuIn.name/]"),
territoire_lieux.get("[c.lieuOut.name/]")
territoire_lieux.get("[c.lieuOut.name/]"),
[print_condition(c.ouvert)/],
[print_condition(c.visible)/],
[print_condition(c.obligatoire)/],
@ -155,17 +151,17 @@ Map<String, Chemin> territoire_chemins = Map.ofEntries(
),
List.of(
[for (o : Objet | c.objetsRecus)]
jeu_personnes.get("[o.name/]")[if (i <> c.objetsRecus->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> c.objetsRecus->size())],[/if]
[/for]
),
List.of(
[for (o : Objet | c.objetsConso)]
jeu_personnes.get("[o.name/]")[if (i <> c.objetsConso->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> c.objetsConso->size())],[/if]
[/for]
),
[print_descriptions(c.descriptions)/]
)
)[if (i <> jeu.territoire.lieux->size())],[/if]
)[if (i <> jeu.territoire.chemins->size())],[/if]
[/for]
);
@ -196,26 +192,28 @@ new Condition(
[for (cET : ConditionEt | c.condition)]
List.of(
[for (cTEST : ConditionTest | cET.conditionTest)]
[if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean([cBOOL.valeur/])
[/let]
[elseif (cTEST.oclIsKindOf(ConditionConnaissance))]
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance(
connaissance_[cCONN.connaissance.name/],
[if (cCONN.negation = '!')]true[else]false[/if]
)
[/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))]
[let cOBJET : ConditionObjet = cTEST.oclAsType(ConditionObjet)]
new ConditionObjet(
objet_[cOBJET.objet.name/],
"[cOBJET.comparateur/]",
[cOBJET.nombre/]
)
[/let]
[/if][if (i < cET.conditionTest->size())],[/if]
[if (cTEST.oclIsKindOf(ConditionBoolean))]
[let cBOOL : ConditionBoolean = cTEST.oclAsType(ConditionBoolean)]
new ConditionBoolean(
[cBOOL.valeur/]
[/let]
[elseif (cTEST.oclIsKindOf(ConditionConnaissance))]
[let cCONN : ConditionConnaissance = cTEST.oclAsType(ConditionConnaissance)]
new ConditionConnaissance(
jeu_connaissances.get("[cCONN.connaissance.name/]"),
[if (cCONN.negation = '!')]true[else]false[/if]
[/let]
[elseif (cTEST.oclIsKindOf(ConditionObjet))]
[let cOBJET : ConditionObjet = cTEST.oclAsType(ConditionObjet)]
new ConditionObjet(
jeu_objets.get("[cOBJET.objet.name/]"),
"[cOBJET.comparateur/]",
[cOBJET.nombre/]
[/let]
[/if]
)[if (i < cET.conditionTest->size())],[/if]
[/for]
)[if (i < c.condition->size())],[/if]
[/for]
@ -227,7 +225,7 @@ new Condition(
List.of(
[for (d : Description | ds)]
new Description(
"[d.name/]"
"[d.name/]",
"[d.texte/]",
[print_condition(d.condition)/]
)[if (i < ds->size())],[/if]
@ -239,23 +237,25 @@ List.of(
List.of(
[for (a : Action | as)]
new Action(
"[a.name/]",
[print_condition(a.visible)/],
[print_condition(a.finInteraction)/],
List.of(
new ArrayList<>(List.of(
[for (co : Connaissance | a.connaissances)]
jeu_connaissances.get("[co.name/]")[if (i <> a.connaissances->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | a.objetsRecus)]
jeu_personnes.get("[o.name/]")[if (i <> a.objetsRecus->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> a.objetsRecus->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | a.objetsConso)]
jeu_personnes.get("[o.name/]")[if (i <> a.objetsConso->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> a.objetsConso->size())],[/if]
[/for]
),
)),
[print_descriptions(a.descriptions)/]
)[if (i < as->size())],[/if]
[/for]
)
@ -265,23 +265,23 @@ List.of(
List.of(
[for (it : Interaction | is)]
new Interaction(
"[it.name/]"
"[it.name/]",
[print_condition(it.visible)/],
List.of(
new ArrayList<>(List.of(
[for (co : Connaissance | it.connaissances)]
jeu_connaissances.get("[co.name/]")[if (i <> it.connaissances->size())],[/if]
[/for]
),
List.of(
)),
new ArrayList<>(List.of(
[for (o : Objet | it.objetsConso)]
jeu_personnes.get("[o.name/]")[if (i <> it.objetsConso->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> it.objetsConso->size())],[/if]
[/for]
), // TODO: inverser recu et conso
List.of(
)), // TODO: inverser recu et conso
new ArrayList<>(List.of(
[for (o : Objet | it.objetsRecus)]
jeu_personnes.get("[o.name/]")[if (i <> it.objetsRecus->size())],[/if]
jeu_objets.get("[o.name/]")[if (i <> it.objetsRecus->size())],[/if]
[/for]
),
)),
[print_actions(it.actions)/]
)[if (i < is->size())],[/if]
[/for]

View file

@ -1 +0,0 @@
/fr/