Lbl 0
Lbl 1
Repeat condition
If condition
Goto 2
End
...
Lbl 2
If condition
Then
Goto 0
Else
Goto 1
Soit: On rentre dans la boucle Repeat (1ere fois).
On a appuyé sur la touche, donc suppr, donc on va au Lbl 2.
Là on rentre dans une condition If (1ere fois)... et on tombe sur un Goto 1 ou 2.
Qui nous amène à la boucle Repeat (2eme fois)
Donc à chaque fois tu "cumule" les If et les Repeat: un goto ne permet pas de sortir d'une boucle, l’appartenance à la boucle/au if est maintenu...
Ce qui fait que le programme "retiens" X fois qu'il est passé par la boucle Repeat, et X fois qu'il est passé par If Then... et attend toujours les End! Donc le prgm finis par ralentir...
Ce qu'il faut retenir:
Eviter de se retrouver dans un cas du style:
Code
If X
Then
Goto 0
End
Repeat X
Goto 0
End
Après tu as quelques optimisations possibles, comme par exemple:
Code
:If K=25:Y-1->Y
:If K=34:Y+1->Y
Qui peut devenir:
Code
Y+(K=34)-(K=25->Y
D'ailleurs, tu ne gère pas les sorties d'écran: il faut poser des limites à la valeur de Y, pour éviter que ton perso ne "sorte" de l'écran...
Pour les optimisations je t'invites à regarder cet article: https://tout82.forumactif.org/t50-candide-ou-l-optimisation