[I7] Faire la liste des actions possibles

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

[I7] Faire la liste des actions possibles

Messagepar Landry le Dim Sep 23, 2018 1:35 pm

Bonjour à tous,

Je cherche un moyen d'indiquer une liste d'actions possible en relation avec certains objets.
En fait le but serait de faciliter le référencement des actions possibles relatives à un objet pour le joueur.

Le joueur pourrait donc taper le nom d'un objet dans l'interpréteur et cela lui déroulerait une liste d'actions possible qu'il pourrait effectuer avec cet objet.

Mettons que notre joueur tape "pomme", la liste d'actions possible avec cet objet se déroule comme suit : prendre, poser, jeter, manger etc.

J'ai essayé plusieurs manières de faire mais aucune n'a réussit complètement ni proprement je n'ai eu que des usines à gaz pas très simple à utiliser dans le code de ma FI.

Si donc vous avez des idées de pistes je suis preneur.
Avatar de l’utilisateur
Landry
Investigateur débutant
 
Messages: 24
Inscription: Sam Déc 17, 2016 12:35 pm
Localisation: Lyon

Re: [I7] Faire la liste des actions possibles

Messagepar Natrium le Ven Sep 28, 2018 8:43 pm

J'imagine que tu veux spécifier à la main la liste des actions pour chaque objet (et non pas les calculer en fonction des propriétés de l'objet) ?

Dans ce cas, on peut le faire de n'importe quelle façon.

On peut utiliser un tableau pour chaque objet, mais c'est un peu lourd :

Code: Tout sélectionner
A thing has a table name called action list.

La pomme is a thing.
The action list of la pomme is the table of Actions Pomme

Table of Actions Pomme
"prendre"
"poser"
"jeter"
"manger"

C'est un peu lourd car il faut créer un tableau avec un nom différent pour chaque objet. On pourrait utiliser des listes à la place. (Plus pratique, mais je pense que ça prend plus de mémoire car elles sont dynamiques, contrairement aux tableaux. Mais ça ne pose pas vraiment problème aujourd'hui.)

Code: Tout sélectionner
A thing has a list of texts called action list.

La pomme is a thing.
The action list of la pomme is {"prendre", "poser", "jeter", "manger"}.

On pourrait peut-être utiliser des relations, mais je ne trouve pas que c'est le plus adapté.

Enfin, si tu veux calculer la liste dynamiquement, une livre de règles est sûrement le plus approprié :

Code: Tout sélectionner
[Le livre de règles qui va décider de la liste des actions possibles pour chaque objet.]
Deciding the actions for is a thing based rulebook producing a list of texts.
The deciding the actions for rulebook has a list of texts called possible actions.

[La dernière règle est là pour renvoyer la liste construite par le livre.]
Last deciding the actions for:
    rule succeeds with result the possible actions.

[Une petite phrase pour afficher la liste d'actions d'un objet.]
To say possible actions of (T - a thing):
    let L be the list of texts produced by the deciding the action for rulebook for T;
    say "[L]".

[Et enfin, des règles pour différents objets.]

Deciding the actions for a portable thing:
    add "prendre" to the possible actions;
    add "poser" to the possible actions.

Deciding the actions for an edible thing:
     add "manger" to the possible actions.

[On peut le faire pour un objet en particulier.]
Deciding the actions for le levier:
    add "tirer" to the possible actions.

Je n'ai pas testé donc il se peut qu'il y ait des erreurs, mais l'idée est là.

Je n'irais pas plus loin parce que je ne sais pas ce qui serait le plus adapté à ce que tu veux faire exactement, alors n'hésite pas à préciser ou à poser des questions !
Avatar de l’utilisateur
Natrium
Grand Ancien
 
Messages: 1071
Inscription: Mar Oct 04, 2011 11:18 pm


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron