Page 1 of 1

Programme "DICE" Syntax Error

Unread postPosted: 18 Sep 2005, 16:59
by SP90
Je vien d'avoir ma TI-83 Plus et bien j'ai essayé de programmer un petit programme simple directement dessus (je n'ai pas de fil pour connecter avec l'ordinateur).

Donc , le programme s'appelle "DICE" et il consiste en une simulation de dés (comme dans les jeux de rôles). Seulement , après avoir choisi le nombre de faces du dé , le message ERR:SYNTAX s'affiche.

Je vous présente ici le code du programme (en rouge - ce que je suis sur qui marche) :

PROGRAM:DICE
:ClrHome
:Output (5,3,"DICE")
:Pause
:DelVar B
:ClrHome
:Lbl S
:Menu("--CHOOSE DICE--","4 SIDES",1,"6 SIDES",2,"8 SIDES",3,"10 SIDES",4,"12 SIDES",5,"20 SIDES",6,"100 SIDES",7)
(choisir le nombre de faces)
:Lbl 1
:4-A
:Lbl 2
:6-A
:Lbl 3
:8-A
:Lbl 4
:10-A
:Lbl 5
:12-A
:Lbl 6
:20-A
:Lbl 7
:100-A (A sera plus tard le nombre le plus haut qui peut apparaître au hasard)
:ClrHome
:Input ,"HOW MANY TIMES ?",E (E sera le nombre de repetitions du roulage de dé)
:Input ,"RESULT MODIFIER ?",C (C sera additionné à A)
:Lbl RL
:ClrHome
:randInt(1,A+C)-D (détermine le résultat)
:D+B-B (le résultat s'additionne au total)
:E-1 (le nombre de repetitions diminue)
:If E0
:Goto RL (relance le dé)
:ClrHome
:Disp B
:Pause
:Menu("THEN ?","ADD OTHER DICE",S,"SUBSTRACT OTHER",SU,"RESTART",RE)
:Lbl SU
:-B-B (met B au negatif pour soustraire le prochain tirage au total)
:Goto S
:Lbl RE
:0-B (rend B équivalent à 0)
:GOTO S (recommence du choix de nombre de faces)

Et en prime si vous pouviez me dire si on peut écrire en lettres minuscules et si je m'y prend bien pour soustraire un autre dé au total.

Re: Programme "DICE" Syntax Error

Unread postPosted: 18 Sep 2005, 17:52
by SP90
Ah ha ! Je viens de découvrir les bonheurs de la fonction Goto !

Alors le problème serait là-dedans :

:Input ,"HOW MANY TIMES ?",E

Re: Programme "DICE" Syntax Error

Unread postPosted: 18 Sep 2005, 18:05
by SP90
Bon , en enlevnt la virgule ça marche , merci. Mais là ça ne s'arrête pas de se charger quand c'est sensé calculer le résultat...

Re: Programme "DICE" Syntax Error

Unread postPosted: 18 Sep 2005, 18:18
by SP90
Ce serait ":Disp B" , non ?

Bon , j'ai changé ma Lbl RL pour un simple Repeat et mon programme à l'air de marcher à perfection. Merci encore ! :)

Edit : Correction , ça ne marche pas du tout... si je fais un dé à 6 faces 1 fois et sans modifieur , ça me donne 72 ou 16 ou plein d'autres trucs... bug:

Re: Programme "DICE" Syntax Error

Unread postPosted: 18 Sep 2005, 22:47
by SP90
Bon , j'ai arrangé plusieurs problèmes et là on peut vraiment dire que le programme marche. Maintenant je veux ajouter un truc:

:If E0
:Disp "NUMBER OF TIMES"
:Output(2,0,"CANT BE NEGATIVE")

Mais je me retrouve avec une erreur ERR:DOMAIN dans ce dernier...

Re: Programme "DICE" Syntax Error

Unread postPosted: 19 Sep 2005, 01:39
by SP90
Bon , tout marche maintenant je crois mais il a fallu que je change le Output alors si quelqu'un peut me donner un truc pour qu'il marche ce serait apprécié !

Edit: Bon , j'ai remarqué que le nombre de lancés ne marchait pas...

Il est représenté par la variable E

[...]
:Input "HOW MANY TIMES ?",E
:Input "RESULT MODIFIER ?",C
:If Eou=0
:Then
:ClrHome
:Disp "NEG. NB. ERROR"
:Pause
:Goto CL
:End
:ClrHome
:Repeat E0
:randInt(1,A)-D
[...]

Alors ?

Re: Programme "DICE" Syntax Error

Unread postPosted: 20 Sep 2005, 00:29
by SP90
Après quelques heures de vérifications , modifications et revérifications , j'ai enfin réussi à rendre mon programme (je crois) infaillible. Maintenant je comprend bien mieu la programmation et encore merci Mic !

Re: Programme "DICE" Syntax Error

Unread postPosted: 11 May 2006, 21:11
by ced78fr
Pourquoi tant ce galère pour un dé ?
Tu le fait en 3 lignes :

:ClrHome
:RandInt(1,6) - A
:Disp A
:Delvar A
:Output (1,1,"


En rouge, c'est pour le booster : Delvar enlève la variable A de la mémoire et output(1,1," enlève le "done" à la fin du programme. :#tritop#: