Page 1 sur 1

Comportement aberrant

Message non luPosté: 12 Juin 2019, 17:46
de UnCurieux
J'ai fait un programme tout simple, qui trace de jolis traits colorés...
J'ai voulu ajouter un compteur de minutes, puisqu'il doit fonctionner 30 mn.
Et là... Le comportement devient aberrant : le programme saute des étapes, ce qui est censé être aléatoire ne l'est plus...
Or ce qui est vraiment étrange est que seule la ligne Text( est responsable de cela.
Vous avez le programme normal en dessous, avec un " devant la ligne pour qu'elle ne s'active pas, et dès qu'on l'enlève cela devient n'importe quoi.

J'ai mis des commentaires seulement ici :
Code: Tout sélectionner
"Initialisation
0→Xmin
264→Xmax
0→Ymax
­164→Ymin
ClrDraw
AxesOff
GridOff
BorderColor 1
BackgroundOff
Line(0,0,264,0,10,1
Line(0,0,0,­164,10,1
Line(264,0,264,­164,10,1
Line(264,­164,0,­164,10,1
[[0,1][1,0][0,­1][­1,0]]→[B]
0→A
startTmr→F

"La boucle
While startTmr-F<1800
"Text(0,0,round((startTmr-F)/60,0))
[B](A+1,1)→B
[B](A+1,2)→C
randInt(1,163)→D
randInt(1,263)→E
While pxl-Test(D,E)=0
Pxl-On(D,E,10+A
D+B→D
E+C→E
End
If D≠0 and D≠164 and E≠0 and E≠264:Pxl-Off(D,E
A+1→A
remainder(A,4→A
End
Disp round((startTmr-F)/60,0)


Boucle normale :
Ecran normal.png
Ecran normal.png (2.1 Kio) Vu 2029 fois

En enlevant " devant Text( :
Ecran bugué à 3mn.png
Ecran bugué à 3mn.png (2.48 Kio) Vu 2029 fois

Re: Comportement aberrant

Message non luPosté: 12 Juin 2019, 23:18
de critor
Certaines instructions ont des effets de bord.

Par exemple, certaines instructions graphiques modifient les variables X et ou Y.

Si le codage interne de l'aléatoire a quelque chose à voir avec l'horloge, pas impossible que ton affichage de l'horloge perturbe l'aléatoire.

Re: Comportement aberrant

Message non luPosté: 13 Juin 2019, 12:22
de edgar13
Oui. par exemple impossible de mettre une boucle for avec Y! >:]

Re: Comportement aberrant

Message non luPosté: 13 Juin 2019, 12:25
de Lionel Debroux
Apparemment, startTmr a des effets de bord. Vérifie la façon dont tu utilises cette fonction.

Re: Comportement aberrant

Message non luPosté: 13 Juin 2019, 13:58
de UnCurieux
Il semble qu'en effet la fonction Text( ait un "effet de bord", car peu importe ce qu'on souhaite afficher, le même effet persiste, y compris en enlevant toute présence de startTmr du programme.

C'est étrange car ce n'est pas la première fois que j'utilise du texte et de l'aléatoire dans un programme, exemple : http://ti-pla.net/a1495596

Après un petit test, je vois qu'en fait cela dépend de l'emplacement de Text( dans le programme. Cela rappelle getkey qui ne fonctionne pas lorsque Text( n'est pas loin dans le même programme.
Donc Text( a vraiment des effet de bords dérangeants...

Merci de vos réponses :)