feat: ajout des transformations en java

This commit is contained in:
Laurent Fainsin 2022-01-19 10:44:51 +01:00
parent 97dd01d59f
commit b5a2ce68a1
10 changed files with 1990 additions and 1741 deletions

View file

@ -45,7 +45,7 @@ Personnes:
objets_conso: objets_conso:
descriptions: descriptions:
- Description1: - Description1:
texte: "la bonne reponse" texte: "VSCode est le meilleur IDE de la terre"
condition: true condition: true
- Reponse_2: - Reponse_2:
@ -57,7 +57,7 @@ Personnes:
- tentative - tentative
descriptions: descriptions:
- Description1: - Description1:
texte: "la mauvaise reponse" texte: "Eclipse est le meilleur IDE de la terre"
condition: true condition: true
Territoire: Territoire:

View file

@ -85,6 +85,13 @@ public class Jeu {
} }
} }
for (Transformation t : transformations.values()) {
if (t.possible()) {
System.out.println("[" + choix.size() + "] " + t);
choix.add(t);
}
}
try { try {
System.out.print("\nChoix : "); System.out.print("\nChoix : ");
selection = Integer.parseInt(reader.readLine()); selection = Integer.parseInt(reader.readLine());
@ -96,6 +103,8 @@ public class Jeu {
lieu = ((Chemin) choix_selection).emprunter(); lieu = ((Chemin) choix_selection).emprunter();
} else if (choix_selection instanceof Personne) { } else if (choix_selection instanceof Personne) {
((Personne) choix_selection).interragir(reader); ((Personne) choix_selection).interragir(reader);
} else if (choix_selection instanceof Transformation) {
((Transformation) choix_selection).transformer(reader);
} else { } else {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,4 @@
import java.io.BufferedReader;
import java.util.List; import java.util.List;
public class Transformation { public class Transformation {
@ -16,4 +17,24 @@ public class Transformation {
this.objetsSources = objetsSources; this.objetsSources = objetsSources;
this.objetsResultats = objetsResultats; this.objetsResultats = objetsResultats;
} }
public void transformer(BufferedReader reader) {
Jeu.clearScreen();
for (Objet objet : objetsResultats) {
Jeu.explorateur.objets.add(objet);
}
for (Objet objet : objetsSources) {
Jeu.explorateur.objets.remove(objet);
}
}
@Override
public String toString() {
return "Transformation " + this.nom;
}
public boolean possible() {
return this.possible.evaluer() && Jeu.explorateur.objets.containsAll(this.objetsSources);
}
} }

View file

@ -24,6 +24,12 @@ Objets:
condition: true condition: true
Transformations: Transformations:
- TestTransfo:
condition: true
objets_in:
- warpReceipt
objets_out:
- warpTicket
Connaissances: Connaissances:

View file

@ -34,7 +34,7 @@ Map<String, Connaissance> jeu_connaissances = Map.ofEntries(
[for (c : Connaissance | jeu.connaissances)] [for (c : Connaissance | jeu.connaissances)]
entry( entry(
"[c.name/]", "[c.name/]",
new Objet( new Connaissance(
"[c.name/]", "[c.name/]",
[print_condition(c.visible)/], [print_condition(c.visible)/],
[print_descriptions(c.descriptions)/] [print_descriptions(c.descriptions)/]

View file

@ -34,7 +34,7 @@ Map<String, Connaissance> jeu_connaissances = Map.ofEntries(
[for (c : Connaissance | jeu.connaissances)] [for (c : Connaissance | jeu.connaissances)]
entry( entry(
"[c.name/]", "[c.name/]",
new Objet( new Connaissance(
"[c.name/]", "[c.name/]",
[print_condition(c.visible)/], [print_condition(c.visible)/],
[print_descriptions(c.descriptions)/] [print_descriptions(c.descriptions)/]