Page 1 of 3
un goto

Posted:
09 Feb 2009, 11:25
by Emyl
enfin voila je voudrais savoir comment faire un goto qui évolue
je m'explique : soit X le niveau du joueur, je voudrais que le monde qui l'entoure évolue (change) selon X
quelque chose du genre :
- Code: Select all
Goto x
Lbl x=1
...
Lbl x=3
...
Lbl x=2
...
bien entendue, ce qui marqué plus haut ne marche pas.
je voudrais contourner le :
- Code: Select all
If x=0:Goto 0
If x=1:Goto 1
If x=2:Goto 2
...
Lbl 0
Lbl 1
Lbl 2
je rappelle que je suis sur 84+ et 83+
merci d'avance ^^
Re: un goto

Posted:
09 Feb 2009, 11:34
by critor
Heureux de voir que tu te lances enfin dans la programmation.
Malheureusement, je ne crois pas que ce soit possible... Les Lbl/Goto sont justement des étiquettes figées (statiques).
Peux-tu préciser ce que tu veux faire?
Il y a peut-être une solution contournant les Goto... (boucles, sous-programmes, tests...)
Si c'est pour faire un menu, je fais exactement comme tu as fait...
Re: un goto

Posted:
09 Feb 2009, 16:40
by Bisam
Ne peut-on pas faire quelque chose du genre :
- Code: Select all
goto expr(string(x))
Re: un goto

Posted:
09 Feb 2009, 18:07
by critor
Y'a pas de fonction string() sur 83/84 qui convertir un nombre en une chaîne...
Ensuite, je pense que l'interpréteur Basic ne fera aucune évaluation à droite d'une commande Goto ou Lbl.
Re: un goto

Posted:
09 Feb 2009, 18:10
by tama
ouép et je doute que sur 89 ça marche
par contre p'tet que goto #x devrait marcher ... sur 89 (c'est l'indirection, ça existe pas sur 83+/84+)
enfin là n'est pas le sujet
Re: un goto

Posted:
09 Feb 2009, 20:16
by ced78fr
je vois pas trop le problème mais bon... un if avec une condition (genre telle valeur sur une variable) ?
Re: un goto

Posted:
09 Feb 2009, 20:41
by critor
Il trouve ça trop lourd à écrire, voilà tout...
Peut-être aussi qu'il a bien plus que 3 conditions...
Re: un goto

Posted:
09 Feb 2009, 21:12
by Emyl
ben oui il y en aurait des dizaines, voir peut être un peu plus

je pense en effet créer des sous-programmes, mais ça fera toujours
- Code: Select all
If X=0:prgm0
If X=1:prgm1
If X=2:prgm2
If X=3:prgm3
If X=4:prgm4
...
ce n'est pas une perte de place ? on ne pourrais pas faire du genre (encore ^^) un peu du même genre que ce que proposait Bisam :
- Code: Select all
X-str1
prgm(str1)
Re: un goto

Posted:
09 Feb 2009, 21:35
by critor
Très bien de penser à gagner de la place dès tes "débuts" en programmation. Tu iras loin!
Ce que tu demandes, lancer un programme à partir d'une chaîne de caractères est possible, mais uniquement en assembleur.
Ne prends pas peur: on te demande pas de programmer en assembleur...
Si c'est ce que tu veux, on doit pouvoir te trouver rapidement un petit utilitaire assembleur tout fait qui fait ça sur 83+ et 84+.
Le seul truc dommage (selon ce que tu veux faire) est que tu perds alors la compatibilité avec les calculatrices de type 83/82Stats/82Stats.fr.
Il faudrait donc faire une 2ème version, en remplaçant le programme assembleur par un autre (et qui peut-être ne fonctionnera pas tout-à-fait pareil... donc quelques modifications avant et après son lancement peuvent être nécessaires...)
Re: un goto

Posted:
10 Feb 2009, 12:08
by Emyl
ok je vais chercher. Mais chaque sous programme risque de prendre pas mal de place, et de plus on n'en n'utilise qu'un à la fois. On ne peut pas archiver les programmes en mettant
- Code: Select all
Archive prgm0
peut-on le faire en basic ?