Forum

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

Aide! - Page 1 / 2

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.
Shânyü-Finiarel le 17/03/2007 à 21:05
Je vous arrête :
Code
:Radian
:Polaire
:AxesNAff
:"8sin(2.5theta)"->r
:4"pi"->thetamax
:ZOrthonormal
:For(X,0,62
:For(Y,0,94
:Pxl-Change(X,Y
:End:End
:Texte"50,25,"PEACE AND LOVE
:Pause
:""->r1
:EffDessin
:Fonct
:ZStandard
:AxesAff
:EffEcr
glasses.gif
Sangohan38 le 17/03/2007 à 21:15
J'admet mo erreur sur le z80.
Cepandant je sais que j'ai raison.
D'ici demain, je te poste un prog avec et sans Then/end.
Tu verra lequel des deux buggera en premier.

Sangohan38
Deeph le 17/03/2007 à 21:43
Si ça bug c'est qu'il y a forcement une erreur dans tes boucles (du genre si t'utilise trop de 'Goto'...).

https://www.yaronet.com/topics/94436-astuces a écrit :
Le plus souvent les jeux sont lent à cause des boucles mals faites (et ça donne souvent les 'ERR : MEMORY'), voici un éxemple de boucle à ne pas faire :

Citation
Lbl 1
While 1
If [truc]=[truc]:Then:Goto 1:End
End


Car si la condition est vérifiée, alors on va au label 1, et donc la boucle While ne se termine pas par un 'End' et en plus on re-crée une autre boucle While par dessus qui ne va peut être pas se terminer non plus.

A mon avis, il vaut mieu faire un truc du genre :

Citation
While 1
If [truc]=[truc]:Then:[...]:End
End


'fin bon, des fois les boucles sont plus complexes et on voit pas souvent d'où viens 'ERR : MEMORY', le plus c'est encore de ne pas utiliser les 'Goto' (dans la mesure du possible).
spok le 17/03/2007 à 21:46
Bonjour tous le monde qui peut me dire car je suis harchi débutant avec la ti-82 stats fr comment en programmant ont peu metre ClrHome
merci d'avance!!!
Stupid le 17/03/2007 à 22:29
c'est EffEcr
vas içi pour les traductions:
http://fonkyti.niceboard.com/L[...]nglais-t38.html

et poutr le gros concours z82 j'ai renoncé ça ferait de l'ombre à mon forum
Stupid le 17/03/2007 à 22:30
Deeph a écrit :
Baby Ike > Nan, tout le monde à des adresses dans ses signatures donc pourquoi pas moi ? ).


Je rgole ; )
Deeph le 17/03/2007 à 22:36
D'ailleur tu continue le concours ou pas ?

Sinon si je suis passer par là c'est juste pour aider.

Et pour l'autre problème, je suis pas le premier à dire que c'est bien les 'Goto' et non pas les 'Then' ou autre boucle à la 'For(' ou 'Repeat' qui font des erreurs, cf ici...
Stupid le 17/03/2007 à 22:47
nno je m'occupe de mon forum pour qu'il devienne le prmeier forum de TI 82,83, et celle d'aprés
Deeph le 18/03/2007 à 11:31
Tutorial 07 - https://les83plus.pages-perso.[...]_basiclearn.php a écrit :
En effet, on peut faire des boucles comme l'on a toujours fait jusque là : avec des labels et des Goto. Mais ces boucles sont moins estétiques, prennent queleques octets de plus en mémoire et, surtout, si plus tard vous voulez devenir programmeur vous apprendrez que les étiquettes dans un programme en language évolué doivent être évités au plus possible (pour la lisibilité, notemment).


Image manquante
Sangohan38 le 18/03/2007 à 11:58
J'ai refait le teste que j'avais proposé et c'est bien le for qui à lâcher en premier.
Je tient à signaler que nous sommes des programmeurs de calculette et que par conséquent, nous n'utilisons pas de langages évolués.

Sangohan38
Deeph le 18/03/2007 à 12:06
Si on te dit que les boucles avec des labels prennent quelques octets de plus c'est que c'est vrai (et c'est tiré d'un tuto pour les TI 83/82 STATS). Et sinon poste ton code.
Sangohan38 le 18/03/2007 à 13:49
J'ai jamais dit que ça prenait moins d'octets, j'ai juste souligner que la boucle mettra l'erreur avant l'étiquette.
Pour le code, j'ai simplement fait celui que j'avais postés sur le sujet que tu as cité.

Sangohan38
Deeph le 18/03/2007 à 14:49
>_< Mais les boucles sans étiquettes ne bugs pas ! Essai donc de faire, par éxemple, ce code sur VTI en augmentant la vitesse :

Citation
ClrHome
0->A
Repeat 0
A+1->A
Disp A
If A=100:Then:0->A:End
End


Et tu verra que ça ne bug pas...
artouille33 le 23/03/2007 à 11:36
oulala vous m'avais encore plus enbrouiller!!!!!!donc je vais tester le truc de sangohan !!!!
Sangohan38 le 23/03/2007 à 13:07
J'ai tester et c'est mon affirmation qui s'est révélée vrai sur ma calcu.

Sangohan38
Deeph le 23/03/2007 à 18:26
<_< Si les boucles 'If:Then:End' ne marchai pas (et idem pour les 'While', 'For(', etc...), ce langage ne servirai à rien, tous les jeux en Ti-Basic buggerai, etc... Franchement, test sur VTI, pas avec ta calc (ou alors avec celle de quelqu'un d'autre), tu verra que ça ne bug pas. En plus, en ce moment je suis entrain de développer une adaptation des Sims sur TI, j'utilise plein de boucle sans labels et le jeu ne bug pas, il n'a aucun problèmes.
Sangohan38 le 23/03/2007 à 21:14
Bien, je vais m'acheter une nouvelle calcu et je retesterais.

Sangohan38
Deeph le 23/03/2007 à 21:21
Une 82 STATS ? Si vraiment ça t'interesse une nouvelle TI prend une 83+ ou une 84+ (voir Silver Edition s'il te faut vraiment de la place). En plus, le TI-Basic est le même sur TI 82 STATS/83/83+/84+ (sauf que sur certains modèles, on a des nouvelles commandes plus ou moins inutiles).
Sangohan38 le 23/03/2007 à 23:25
J'avais une 83+ que l'on m'as voler.
Donc, je connais les nouvelles commandes.
Pour le reste, je compte m'acheter au minimum une 83.

Sangohan38
Deeph le 23/03/2007 à 23:27
La 82 STATS est une TI 83, donc si tu veux t'en acheter une prend celle-ci.
Sangohan38 le 24/03/2007 à 10:56
Oui mais je trouve pas jolis la couleur de la 82 STATS, un peut trop banal à mon goût.
Alors qu'une bonne vielle 83 (+) noire montre une différence.

Sangohan38
PMdej le 24/03/2007 à 11:48
Mon frér a une TI 89 + TITANIUM
ca ca gère pour la programmation !!!!
godgrace.gif
Sangohan38 le 24/03/2007 à 15:17
C'est vrai.
Mais au dessus de la 84+, je trouve les calculettes trop dur à utiliser car elles ont trop de fonctions.

Sangohan38
Deeph le 24/03/2007 à 18:30
Moi j'ai aussi une TI 82 STATS, et je trouve que la couleur est très bien (mais l'écran en Bleu ça fait un peu plus mal au yeux que l'écran noir de ma 84+ SE >_>). Sinon pour ce qui est des TI 68k (68k désigne les TI 89(Titanium)/92(+)/V200), c'est pas du tout le même TI-Basic, il est plus développé et on a beaucoup plus de fonctions (utiles) à notre disposition.
Sangohan38 le 24/03/2007 à 18:32
Finallement, c'est encore une 83+.
Elle est bleu avec des autocollants pour personnaliser.
Mais, elle est bien mieux en bleu foncé légèrement transparent pour laisser voir l'intérieur de la bête.

Sangohan38
Deeph le 24/03/2007 à 18:38
Nan, la 82 STATS n'est pas une 83+, juste une 83 (sans la mémoire Flash, donc).
Sangohan38 le 24/03/2007 à 18:45
Je sais qu'une 83+ est différent d'une 82 STATS.
Mais ma calcu est bleu.

Sangohan38
PMdej le 24/03/2007 à 22:05
ouais mais une fois que tu métrise bien toutes les fonctions tu peut faire des trucs bien balaises !!!!!
avec une ti 89 + titanium !!!
godgrace.gif
Sangohan38 le 25/03/2007 à 11:36
Bien sur.
Mais dans ce cas la, autant programmer sur ordi...

Sangohan38
PMdej le 30/03/2007 à 19:05
ouais t'as raison mais nampeche que si tu t'ennuie en cours tu met un petit jeu de shoot sur ta calcu et puis ............... ben voila minied.gif

godgrace.gif