feat: java fini ?
This commit is contained in:
parent
275f849c47
commit
9a145618c7
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 ?
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
);
|
||||
new Personne(
|
||||
"cashier",
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
true
|
||||
|
||||
jeu_personnes.add(personne_cashier);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
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
|
||||
);
|
||||
new Lieu(
|
||||
"preWarp",
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
territoire_lieux.add(lieu_preWarp);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
true
|
||||
|
||||
List<Personne> lieu_postWarp_2_personnes = new ArrayList<>();
|
||||
List<Objet> lieu_postWarp_2_objets = new ArrayList<>();
|
||||
List<Connaissance> lieu_postWarp_2_connaissances = new ArrayList<>();
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
|
||||
Lieu lieu_postWarp = new Lieu(
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
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
|
||||
);
|
||||
new Lieu(
|
||||
"postWarp",
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
true
|
||||
|
||||
territoire_lieux.add(lieu_postWarp);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
List<Personne> lieu_END_3_personnes = new ArrayList<>();
|
||||
List<Objet> lieu_END_3_objets = new ArrayList<>();
|
||||
List<Connaissance> lieu_END_3_connaissances = new ArrayList<>();
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
// TODO: utiliser un search dans la liste plutot que de déclarer les objets
|
||||
Lieu lieu_END = new Lieu(
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
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
|
||||
);
|
||||
new Lieu(
|
||||
"END",
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
territoire_lieux.add(lieu_END);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
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
|
||||
);
|
||||
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
|
||||
|
||||
territoire_chemins.add(chemins_Warp);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
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(
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
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
|
||||
|
||||
territoire_chemins.add(chemins_EndChemin);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
true
|
||||
|
||||
Territoire jeu_territoire = new Territoire(territoire_lieux, territoire_chemins);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
false
|
||||
|
||||
Jeu ze_GAME = new Jeu(
|
||||
jeu_territoire,
|
||||
jeu_objets,
|
||||
jeu_connaissances,
|
||||
jeu_personnes,
|
||||
jeu_transformations
|
||||
);
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
),
|
||||
List.of(
|
||||
),
|
||||
List.of(
|
||||
),
|
||||
List.of(
|
||||
new Description(
|
||||
"DescriptionToken",
|
||||
"END description",
|
||||
new Condition(
|
||||
List.of(
|
||||
List.of(
|
||||
new ConditionBoolean(
|
||||
true
|
||||
|
||||
ze_GAME.jouer();
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Territoire
|
||||
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
|
||||
);
|
||||
|
||||
ze_GAME.jouer();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
/fr/
|
File diff suppressed because it is too large
Load diff
|
@ -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]
|
||||
|
|
|
@ -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]
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
/fr/
|
Loading…
Reference in a new issue