Forum

Catégorie : Programmes
Forum : Aide à la programmation
Vues : 5286
Réponses : 55
Type : discussion
Etat : réponses autorisées

Aide! - Page 1 / 3

Artouille33 le 14/03/2007 à 08:33
coment on fait pour faire deplacer automatiquement une lettre san toucher a aucune touche de ma calcu!!!!!!!!


merci de vos reponses minied.gif
Stupid le 14/03/2007 à 13:06
faut une boucle un output
Code
:16[sto]X
:For(A,1,X
:69!:69!:69!:69!
:Output(1,X,"*
:End
webmaster le 14/03/2007 à 13:27
A ta place, je mettrai ce code :

Code
:For(A,1,16)
:ClrHome
:Output(1,X,"*")
:69!:69!:69!:69!
:End


@+ Le Webmaster beer.gif
Sangohan38 le 14/03/2007 à 13:54
Sinon y'a aussi ce moyen:

Code
0->Y
Lbl 0
Y+1->Y
Output(1,Y,"*"
Output(1,Y-1," "
If Y=16:Stop
Goto 0


Sangohan38
Stupid le 14/03/2007 à 17:11
webmatser, c'est bien joli maios il voulait des lettres qui bouge donc y' la mienne et celle de sango qui marche et le sujet est réglé
Sangohan38 le 15/03/2007 à 13:18
Il s'est tromper dans ses variables: il aurait du utiliser deux fois la même au lieu de mettre deux variables.

Sangohan38
PMdej le 15/03/2007 à 18:17
ouais moi aussi j'essaye de le fair !!!
Qulqu'un pourrait m'expliquer ou pas ????

godgrace.gif
Stupid le 15/03/2007 à 18:30
tout est écrit...
Deeph le 17/03/2007 à 11:41
Y'a encore mieux
Image manquante
:

Code
ClrHome
4[->]Y
8[->]X
Repeat K=45
randInt(1,4[->]A
If A=1:Then
If Y[n'égale pas]1:Then:Output(Y,X," ":Y-1[->]Y:End
End
If A=2:Then
If Y[n'égale pas]8:Then:Output(Y,X," ":Y+1[->]Y:End
End
If A=3:Then
If X[n'égale pas]1:Then:Output(Y,X," ":X-1[->]X:End
End
If A=4:Then
If X[n'égale pas]16:Then:Output(Y,X," ":X+1[->]X:End
End
Output(Y,X,"8"
getKey[->]K
End
ClrHome:Output(1,1," ":Stop


Avec, bien sur, [->] qui correspond à la touche [STO>] de ta TI et [n'égale pas] ce situe dans le menu [TEST] de la TI en appuyant sur [2nd],[MATH]. Pour quitter le programme, tu appui sur [CLEAR].
Sangohan38 le 17/03/2007 à 16:19
Oui mais cette méthode finis par faire bugger la calulette et elle est plus longue à faire que les notres.

Sangohan38
Deeph le 17/03/2007 à 16:56
Image manquante
N'importe quoi, met boucles sont parfaitement faites donc il n'y aura pas de 'ERR:MEMORY'. Le code que tu as proposé ne permet que de faire bouger de gauche à droite alors que celui ci permet de faire bouger dans les quatres directions, en prennant en compte les rebords de l'écran (pour ne pas crasher) et de façons aléatoire.
Sangohan38 le 17/03/2007 à 17:54
Les then ralentissent le programme jusqu'a cette erreur.
Cepandant, en enlevant les then et les end, on peut très bien ne plus avoir cette erreur et puis, ton prog peut être modifiable car il n'est compatible qu'à partire de la 82 STATS.

On peut aussi avoir:

Code
Lbl 1
int rand16+1->X
int rand8+1->Y
Output(Y,X,"X
69!
69!
69!
ClrHome
getkey->K
If K=105:Stop
Goto 1


Presque le même code que toi mais en plus court.

Sangohan38
Deeph le 17/03/2007 à 18:05
Image manquante
Ce sont les 'Goto' qui relentissent énormement les programmes, pas les 'Then'. Et on ne peut enlever les 'Then:[...]:End' qu'a certains moment (losqu'on a qu'une seule chose à éxecuter si la condition est vrai, ce qui n'est pas le cas ici).

Après, pour le rendre compatible TI 82, il suffit de modifier les 'randInt('.

Puis les '69!' dans un programme ça fait pas très propre, idem que le 'ClrHome' pour éffacer un seul caractère (et puis ton code ne rend pas l'impression d'un mouvement, il affiche un truc au hasard à l'écran).
dark_htf le 17/03/2007 à 19:02
Non deeph, désolé mais les then ralentissent le programme ; sur un jeu graphique que j'ai crée, j'ai fait un essai avec le then, et sans.
Avec le then le perso bougeait mois vite au cour du temps, puis paf ERR : memoire
Tandis que sans le jeu était fluide et le perso ne ralentissait pas.
voila
dark_htf
Sangohan38 le 17/03/2007 à 19:56
C'est vrai que mon prog affiche aléatoirement un point.
Pour les 69! et le ClrHome, je voit pas du tout en quoi sa fait pas propre dans la mesure où j'aurais pu utiliser d'autres méthodes plus gourmandes en mémoire.
Et pour finir, dans ton prog, certain Then/end ne sont pas obligatoires.
Enfin, si on dit tous que les Then/end ralentissent jusqu'à l'erreur, c'est que c'est vrai.

Sangohan38
Deeph le 17/03/2007 à 20:08
C'est vos boucles qui sont mal faites et qui aboutissent à des 'ERR:MEMORY' (cf ici). Je programme depuis plus de 3 ans à peu près sur TI z80 en TI-Basic et je sais bien que les 'Then' n'aboutissent jamais à des erreurs.

dark_htf > Poste ton code, je suis sur de trouver le problème, et ça ne va surement pas vennir des 'Then:[...]:End'...

Sangohan38 > Dans certains jeux, si tu utilise 'ClrHome', tu est obligé de réafficher tout l'écran, ce qui est lent est donc pas très 'propre' dans un programme. Et pour ce qui est du '69!', c'est moche car déjà que le Ti-Basic est lent, c'est encore plus dommage d'avoir à le ralentir (on peut _toujours_ faire autrement).

edit : Essayez de lancer mon prog sur TI (ou VTI) et d'attendre (ou accélérer la vitesse sous VTI), vous verrez qu'il n'y a pas d'erreurs.
Stupid le 17/03/2007 à 20:33
Deeph tu serais pas venu essentiellement pour faire de la pub pour le concours z80???

Tout ralenti tout et donc si des then ne servent à rien ça fait ralentir le prog
Sangohan38 le 17/03/2007 à 20:34
Ca fait des centaines de programmes que j'ai créer sur les 82.
Une z80 et une 82, c'est pas pareil car elle est plus rapide, on affiche un point donc on peut l'effacer avec ClrHome et ensuite, ça fait un ans que je programme donc je sais de quoi je parle.

Sangohan38
Stupid le 17/03/2007 à 20:35
une battle de pro-grammeurs???
Deeph le 17/03/2007 à 20:44
Baby Ike > Nan, tout le monde à des adresses dans ses signatures donc pourquoi pas moi ? Et pour le 'Tout ralenti tout' c'est faux, car la TI ne lis que la condition 'If [...]', et elle lis le bloc suivant (donc entre 'If' et 'End') que si la condition est vérifiée. En gros lorsqu'on éxecute un truc le 'Then:[...]:End' ne sert qu'a délimiter les fonctions par rapport à la condition.

Sangohan38 > Le terme 'Ti z80' regroupe les TI 82/83(+)/84(+)/Silver Edition/85/86. Les processeurs 82 et la 83 (celle ou j'ai fait ce prog, donc), sont tout deux cadencés à 6MHz, donc il n'y a pas de différence au niveau de la vitesse d'éxecution... Après tu utilise un 'ClrHome' si tu veux, je te donne juste un conseil.