Créer un petit language interpreté !

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Créer un petit language interpreté !

Message 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
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

LUA devrait faire l'affaire :)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Demande à Dobro, il a recréé de toute pièce le langage "Logo" en PB!
Est beau ce qui plaît sans concept :)
Speedy Galerie
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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".
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message 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
Est beau ce qui plaît sans concept :)
Speedy Galerie
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

il y a dracflamloc qui avait fait un truc de ce genre

http://purebasic.fr/english/viewtopic.php?t=20312
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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: )
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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 ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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
Remy Vincent
Messages : 12
Inscription : sam. 15/oct./2005 18:33
Contact :

Re: Créer un petit language interpreté !

Message 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!
Les groupes affadissent votre QI
Remy Vincent
Messages : 12
Inscription : sam. 15/oct./2005 18:33
Contact :

Re: Créer un petit language interpreté !

Message 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!
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Créer un petit language interpreté !

Message 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
Répondre