Page 1 sur 3

Créer un petit language interpreté !

Publié : sam. 20/mai/2006 12:24
par Thyphoon
Je voudrais créer un minilanguage qui serait interprété, pour la création d'un jeu. En gros la réaction des objets du jeu passerait par ce script
Par exemple pour allumer une lampe on a un interrupteur et une source d'energie.
L'objet Lampe= Objet 1
L'objet Interrupteur=Objet 2
La source d'energie=Objet 3
Chaque objet peu avoir plusieur etat
la lampe :
Etat 0 : La lampe est eteinte
Etat 1: La Lampe est allumé
Etat 2: La lampe a explosé
L'interrupteur
Etat 0 : Eteind
Etat 1: Allumé
et la source d'energie
Etat 0:Eteind
Etat 1: Fonctionne normalement
Etat 2: Surtention

Le script serait alors:

Code : Tout sélectionner

if Objet(2)=1 and Objet(3)=1 and objet(1)!=2 then Objet(1)=1
if Objet(2)=0 and objet(1)!=2 then Objet(1)=0
if objet(2)=1 and objet(3)=2 and objet(1)!=2 then objet(1)=2
Et j'avoue que je ne sais pas trop comment m'y prendre.
j'ai fait quelques recherches mais je n'ai pas trouvé.
En gros il me faudrait un language capable d'interpreté
IF, AND, OR, =,!=,Then
fautil garder le script dans sa forme text et travailler avec ? (est ce que ça ne vas pas trop ralentir ?)
Faut il transformer tout le code en chiffre ?
Comment faire ?

Merci d'avance pour vos précieux conseilles :P

Publié : sam. 20/mai/2006 12:33
par Dräc
LUA devrait faire l'affaire :)

Publié : sam. 20/mai/2006 13:15
par Thyphoon
Dräc a écrit :LUA devrait faire l'affaire :)
LUA est un peu lourd pour ce que je veux, faire...:p
Mais je retiens l'idée si je n'arrive pas a faire autrement.
merci en tout cas :D

Publié : sam. 20/mai/2006 13:54
par Frenchy Pilou
Demande à Dobro, il a recréé de toute pièce le langage "Logo" en PB!

Publié : sam. 20/mai/2006 14:03
par Thyphoon
Frenchy Pilou a écrit :Demande à Dobro, il a recréé de toute pièce le langage "Logo" en PB!
Oui oui j'avais un peu suivi l'affaire mais apparement il n'avait pas travaillé sur les conditions "if".

Publié : sam. 20/mai/2006 14:47
par Frenchy Pilou
Oui oui j'avais un peu suivi l'affaire mais apparement il n'avait pas travaillé sur les conditions "if"
si (if)argument signe argument
choix 1
sinon (else)
choix 2
fin_si (endif)
De son help :roll:
Si si :D

Publié : sam. 20/mai/2006 14:54
par comtois
il y a dracflamloc qui avait fait un truc de ce genre

http://purebasic.fr/english/viewtopic.php?t=20312

Publié : sam. 20/mai/2006 15:37
par Backup
Thyphoon a écrit :
Frenchy Pilou a écrit :Demande à Dobro, il a recréé de toute pièce le langage "Logo" en PB!
Oui oui j'avais un peu suivi l'affaire mais apparement il n'avait pas travaillé sur les conditions "if".
oui les conditions (meme imbriqué) , ont ete geré sur mon logo
mais actuellement j'ai un peu laché le Purebasic
a force d'attendre la V4 , j'ai completement deconnecté
du coup je me vois mal t'expliquer quoi que ce soit !!

(en ce moment je suis dans ma periode Guitare .. :lol: )

Publié : sam. 20/mai/2006 16:55
par Thyphoon
comtois a écrit :il y a dracflamloc qui avait fait un truc de ce genre

http://purebasic.fr/english/viewtopic.php?t=20312
Merci pour le lien...Je pensais pas que c'était aussi compliqué....
Dobro a écrit : oui les conditions (meme imbriqué) , ont ete geré sur mon logo
mais actuellement j'ai un peu laché le Purebasic
a force d'attendre la V4 , j'ai completement deconnecté
du coup je me vois mal t'expliquer quoi que ce soit !!

(en ce moment je suis dans ma periode Guitare .. :lol: )
Tu crois que tu pourrais me passer tes sources que je jette un oeil ? car j'ai pas reussi a les trouver ?

Publié : sam. 20/mai/2006 19:08
par Backup
Thyphoon a écrit :Tu crois que tu pourrais me passer tes sources que je jette un oeil ? car j'ai pas reussi a les trouver ?

Mes sources n'ont jamais ete , et ne seront jamais distribuées ! :D
je suis toujours dessus, mais disons que pour l'instant je prends des vacances ! :D

je vais te shematiser la chose :

il te faut:
un analyseur syntaxique : qui va annalyser les commandes entré

un interpreteur de commande , qui va "interpreter" les commande reconu par l'analyseur !

si "l'analyseur" rencontre la commande "if" il met un compteur en route
et recupere les parametres de la pseudocommande if (on retient les conditions ) ex : if a=b , on retiendra "a=b"
et c'est seulement lorsque l'analyseur rencontre un "endif"
que l'execution de la condition par l'interpreteur est evalué !! on va donc regarder si a est effectivement egale a b , si c'est le cas on analysera les pseudocommandes se trouvant dans la premiere partie du system IF-else-endif,
sinon on cherchera la commande "Else" , et on analysera et interpretera le code se trouvant apres !
si "else" n'est pas trouvé , c'est pas grave on stop toute analyse et interpretation
tant que l'on ne rencontre pas de "Endif"
si "endif" est rencontre on decremente le compteur
et si le compteur n'est pas egale a zero et que l'on est sorti de la condition et qu'une comande suivante n'est pas un autre "endif"
il y a erreur, cela signifie qu'il manque un endif dans le pseudo code
sinon si le compteur de if est egale a zero
cela signifie que chaque "if" a eu son "endif"
et on poursuivra l'analyse du pseudo code apres la ligne du "Endif"


c'est peut etre pas trop clair, mais c'est grosso modo la methode que j'ai employé pour les conditions ! :D

Publié : sam. 20/mai/2006 19:33
par Thyphoon
Dobro a écrit :
Thyphoon a écrit :Tu crois que tu pourrais me passer tes sources que je jette un oeil ? car j'ai pas reussi a les trouver ?

Mes sources n'ont jamais ete , et ne seront jamais distribuées ! :D
je suis toujours dessus, mais disons que pour l'instant je prends des vacances ! :D
Ok ! :P Bonne vacances alors. :D


EDIT:Merci pour tes explications ça me donne une idée de comment procéder !Un grand merci

Publié : dim. 21/mai/2006 9:39
par Thyphoon
Dobro :
Si jamais apres tes vacances tu trouves un petit code comme exemple je suis preneur :wink: ..lolllllllll Je viens de passer une nuit blanche et ça ne marche pas ce que je fais ..Bouuuuuuuuuuuuuuuu

Re: Créer un petit language interpreté !

Publié : sam. 10/juin/2006 22:51
par Remy Vincent
Thyphoon a écrit :Je voudrais créer un minilanguage qui serait ...
...
Et j'avoue que je ne sais pas trop comment m'y prendre.
j'ai fait quelques recherches mais je n'ai pas trouvé.
En gros il me faudrait un language capable d'interpreté
IF, AND, OR, =,!=,Then

Merci d'avance pour vos précieux conseilles :P

http://www.geocities.com/remyvincent/fr ... arsers.zip


Dans ce lien, il y a un Parser en VB-SCRIPT. Or peu de gens le savent, mais en fait Internet Explorer sait aussi interpréter du VB-SCRIPT en plus du JAVASCRIPT, donc il est possible de faire des petits scripts en basic mais visibles d'un simple clic avec Internet explorer... ce qui fait que donc le Parser en VB-SCRIPT du lien ci-dessus est testable en 2 clics......... 8)

Un parser qui marche, c'est beaucoup beaucoup par rapport à un mini-language... surtout si la flemme l'emporte sur la volonté de travailler et que donc on peut négliger l'évaluation d'expression comme (1+2)*(3+4), et en rester à interpréter 12+34 et pas plus!

Re: Créer un petit language interpreté !

Publié : sam. 10/juin/2006 22:51
par Remy Vincent
Thyphoon a écrit :Je voudrais créer un minilanguage qui serait ...
...
Et j'avoue que je ne sais pas trop comment m'y prendre.
j'ai fait quelques recherches mais je n'ai pas trouvé.
En gros il me faudrait un language capable d'interpreté
IF, AND, OR, =,!=,Then

Merci d'avance pour vos précieux conseilles :P

http://www.geocities.com/remyvincent/99Parsers.zip


Dans ce lien, il y a un Parser en VB-SCRIPT. Or peu de gens le savent, mais en fait Internet Explorer sait aussi interpréter du VB-SCRIPT en plus du JAVASCRIPT, donc il est possible de faire des petits scripts en basic mais visibles d'un simple clic avec Internet explorer... ce qui fait que donc le Parser en VB-SCRIPT du lien ci-dessus est testable en 2 clics......... 8)

Un parser qui marche, c'est beaucoup beaucoup par rapport à un mini-language... surtout si la flemme l'emporte sur la volonté de travailler et que donc on peut négliger l'évaluation d'expression comme (1+2)*(3+4), et en rester à interpréter 12+34 et pas plus!

Re: Créer un petit language interpreté !

Publié : dim. 11/juin/2006 10:52
par Backup
Remy Vincent a écrit : surtout si la flemme l'emporte sur la volonté de travailler et que donc on peut négliger l'évaluation d'expression comme (1+2)*(3+4), et en rester à interpréter 12+34 et pas plus!
ce qui n'est pas le cas de mon PureGolo, qui evalue tres bien ce genre de chose !! :D