Bonjour à tous. Bon voilà, j'ai plus d'idée de jeux à programmer en Basic sur ma TI... Vous avez une idée ? Bien sur je peut pas programmer un truc trop dur, donc si vous avez une idée facile à réaliser je veux bien tenter de l'adapter sur TI 83.
un truc sympa... c'est de faire un jeux multijoueur sur deux caltos...
Ouais mais c'est asser compliquer, je veux bien essayer de faire un jeu à tour par tour, mais ça va être dur quand même. Sinon j'ai déjà fait un moteur de jeu, il reste plus qu'a mettre les mini-jeux, mais là aussi j'ai pas d'idées. Alors si vous avez des idées n'hésitér pas à m'en donner.
Bon voilà j'ai fait un premier mini-jeux où il faut recopier une chiffre le plus vite possible, le seul problème, c'est que je n'arrive pas à case le chiffre que la calculatrice me sort : j'essai de la stocker dans la List 1 mais ça bug !
Quelqu'un à une idée? Peut être qu'avec Str0 ça marcherai ?
Bon je met le code source ici :

Là c'est le programme test du premier mini-jeux :
3üdim(á1)
Output(5,5,"RECOPIE !")
Lbl AB
W+1üW
If Wø30:Goto AB
ClrHome
0üW
randInt(1,900)üá1
prgmCHRONO
Output(8,5,á1
Input "NOMBRE : ",W
If W=á1 and T=1:Y+1üY:Goto 4
If W=á1 and T=3:Y+1üY:Goto 4
If W=á1 and T=5:Y+1üY:Goto 4
If W=á1 and T=7:Y+1üY:Goto 4
If W=á1 and T=9:Y+1üY:Goto 4
If W=á1 and T=11:Y+1üY:Goto 4
If W=á1 and T=13:Y+1üY:Goto 4
If W=á1 and T=15:Y+1üY:Goto 4
If W=á1 and T=17:Y+1üY:Goto 4
If W=á1 and T=19:Y+1üY:Goto 4
If Wøá1 and T=1:Y-1üY:Goto 4
If Wøá1 and T=3:Y-1üY:Goto 4
If Wøá1 and T=5:Y-1üY:Goto 4
If Wøá1 and T=7:Y-1üY:Goto 4
If Wøá1 and T=9:Y-1üY:Goto 4
If Wøá1 and T=11:Y-1üY:Goto 4
If Wøá1 and T=13:Y-1üY:Goto 4
If Wøá1 and T=15:Y-1üY:Goto 4
If Wøá1 and T=17:Y-1üY:Goto 4
If Wøá1 and T=19:Y-1üY:Goto 4
If W=á1 and T=2:Y+1üY:Goto 4
If W=á1 and T=4:Y+1üY:Goto 4
If W=á1 and T=6:Y+1üY:Goto 4
If W=á1 and T=8:Y+1üY:Goto 4
If W=á1 and T=10:Y+1üY:Goto 4
If W=á1 and T=12:Y+1üY:Goto 4
If W=á1 and T=14:Y+1üY:Goto 4
If W=á1 and T=16:Y+1üY:Goto 4
If W=á1 and T=18:Y+1üY:Goto 4
If W=á1 and T=20:Y+1üY:Goto 4
If Wøá1 and T=2:Y-1üY:Goto 4
If Wøá1 and T=4:Y-1üY:Goto 4
If Wøá1 and T=6:Y-1üY:Goto 4
If Wøá1 and T=8:Y-1üY:Goto 4
If Wøá1 and T=10:Y-1üY:Goto 4
If Wøá1 and T=12:Y-1üY:Goto 4
If Wøá1 and T=14:Y-1üY:Goto 4
If Wøá1 and T=16:Y-1üY:Goto 4
If Wøá1 and T=18:Y-1üY:Goto 4 If Wøá1 and T=20:Y-1üY:Goto 4


Bon y'a des bugs, mais vous comprendrez (ø= n'égale pas, et ü=-> )

Sinon voici le programme du chronomètre :
Lbl 9
I+1üI
If Iø50:Goto 9
If I=50:Goto 10
Lbl 10
Stop F+1üF


Et le label 4 du programme test, correspond au moteur de choix d'un mini-jeu.

Sinon je met les début du programme pour ceux que ça interressent :

EugaWare
ça doit etre super super lent avec toutes tes conditions
Nan justement c'est asser rapide, mais je peux pas lancer le programme, il se bloque a cause du problème de List, sinon tu peux le télécharger pour tester les débuts, mais ça bug aussi. Enfaite, faut que je corrige tout ça.
moi... personnelement... pour a par... en ce qui me concerne... je pense que tu ne devrai pas trop abuser des "GOTO"... certe c'est relativement pratique, mais c'est illisible... et tu peux faire facilement des erreurs "ETIQUETTE", qui sont assez difficiles a retrouvées...
...
mais bon c'est mon point de vu... tu n'es pas obligé de le suivre... mais bon...
Une liste s'accompagne toujours d'un rang pour retrouver une variable. Donc If W=L1 ca veut rien dire => bug. Il faudrait mettre if W=L1(1, 2, ou 3) ou encore remplacer L1 par une simple variable (X)...
Bon ok, je vais revoir tout ça, mais je ne sais pas comment remplacer les GOTO par autre chose. Sinon je vais essayer le truc des listes.
Le numéro deriere le nom de la liste est l'emplacemant de la variable dans la liste...

Je m'explique : comme son nom l'indique, un liste perment de stoquer une "liste" de variables. Si tu a une 83+, tu peux mettre 99 variables dans une seule liste (de L1(1) à L1(99) )... Si c'est une 84+ ty peux mettre 999 variables (de L1 (1) a L1(999) ).

Si tu met "If A=L1" tu fait une erreur d'ARGUMENT car la calto ne sait pas à quelle variable de la L1 veux mettre la condition...
Il me semble que tu peux mettre "If L1 = L2" a la seule condition que dimL1 =dimL2 : que la dimention ( le nombre de variables ) dans les deux liste comparées soit le meme... (Mais je ne suis pas sur...). Dans ce cas, la calculatrice va comparer TOUTES les variables des deux listes... L1 = L2 <=> L1(1) = L2(1)
L1(2) = L2(2) et ainsi de suite...

Voila ce qui faut savor pour les liste, qui sont indispensabls a un certain niveau de programmation... (tu verra ensuite les Matrices...)

Si tu as d'autre question, vas-y...
J'ai une TI 83, donc j'ai combiens de variables dans un liste, au maximum ? Bon sinon je vais tout reprendre à Zero en faisant comme vous avez dit, sans trop de GOTO.
Au moins 99 de toute facon (ce qui est largement suffisant).
( sinon, pour relever vos impropriétées, bien sur que l'on est pas obligé d'indicer forcément derrière une liste. On peux très bien faire directement des opérations sur les listes =].
En fait, les Ti z80 permettent:
.multiplication par un scalaire (* chaque élément de la liste par le sclaire en question)
.addition, soustraction par un sclaire ( tout pareil)
.opérations de comparaisons (relations boléenes..) par un scalaire. (=, <=, <, >= , >, !=, ..). Fait le teste entre chaque élement de la liste et le scalaire en question.
Renvoye une liste de résultats bolléens. (1 si test positif, 0 sinon)

.multiplication par une autre liste de même dimension. ( A ne pas confondre avec une multplication matricielle ! Multiplie chaque i-em élément de la 1ere liste par le i-ém de la seconde).
.division par une autre liste de même dimension (tout pareil, sauf qu'on confond déjà moins ^^)
.opération de comparaison liste à liste. (même dim, i-ém élement avec i-ém élement, envoye liste boléeene..)

Il devrait donc par exemple totalement équivalent d'écricre If liste(i)=x que If (liste=x)(i)
Le problème zur Ti z80 (qui est ine incohérence de notation, entre-autre..), c'est que lorsque la liste n'est pas représenté par un nom de variable mais une liste numérique directe ( ici notre (list=x) est une liste numérique directe) , l'extraction d'un élement ne fonctinne à priori pas..( puisque la Ti trouve ça mieux de multiplier la liste par le scalaire de l'indice...)

Bref, à priori (- et faudrais retester, je dis ça de mémoire), on est obligé de nomer notre nouvelle liste pour pouvoir tester ensuite.
Par exemple
L1=x -> L2
If L2(i)

Devrait faire l'affaire.
Mais à quoi sert donc cette méthode ?. En plus, au lieu de faire un test, on en fait n (=dim(L1) ). Et bha justement. Si vos teste sont asser longs à effectuez, ça vous permets de faire tous vos test d'un coup (par exemple à un moment du jeux qui demande peu de fluiditée etc..) et vous avez les résultats instantanément lorsque vous en avez besoin. ça peux être une technique utile d'optimisation.
[ ha, et bien utilisé, ça permet également pas mal d'optimisation en taille, et d'énorme simplifications (plus de label ou quoi..tout est dans le 'i' happy ) parfois ]


Bon, désolé si j'ai posté un pavé, c'est simplement par ce que je suis censé bosser ma thermo grin

edit: fr, notation, etc.
Merci pour les éxplications, je vais essayer d'améliorer le tout et je verrai bien si ça marche.