Posté le 04/03/2017 14:02
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 106 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 04/03/2017 14:03 | #
Bienvenu,
montre nous le code où il y aurait le bug, on ne devine pas comme ça !
Citer : Posté le 04/03/2017 14:04 | #
On a effectivement besoin du code parce que là, tu nous décris le problème comme si c'était quelque chose d'unique et de connu de tous
Citer : Posté le 04/03/2017 14:19 | #
Prog "Poke"
0→S
0→A
99→V
RanInt#(3,15)→A
2→X
Lbl 0
Locate 16,3,V
Locate 19,3,"PV"
Locate 4,X,">"
Locate 5,2,"attaquer"
Locate 5,3,"défendre"
Locate 5,4,"attraper"
Locate 5,5,"fuite"
Locate 4,X," "
Getkey=37⇒X<5⇒X+1→X
Getkey=28⇒X>2⇒X-1→X
Getkey=31⇒X=5⇒Stop◢
Lbl 1
If Getkey=31 And X=2
Then V-A→S
While V≠S
V-1→V
Locate 16,3,V
WhileEnd
IfEnd
Goto 0
Goto 1
Édit Dark Storm : merci d'utiliser les balises
Citer : Posté le 04/03/2017 15:25 | #
Je ne pense pas que ce soit le bug à proprement parler, mais il faut te méfier de cette boucle :
V-1→V
Locate 16,3,V
WhileEnd
En effet, le Locate n'assure pas que le nombre précédent sera effacé. C'est important en particulier quand le nouveau nombre est plus petit que l'ancien. Imaginons que l'adversaire ait 11 PV et qu'on l'attaque, faisant 2 points de dégâts, alors :
→ La première itération de la boucle affiche « 10 »
→ La seconde itération affiche « 9 », remplaçant le 1 sans affecter le 0
On observera donc 90 alors qu'il n'en est rien !
Par ailleurs, je ne sais pas ce que tu as voulu obtenir en écrivant :
Goto 1
Mais la deuxième de ces lignes n'est jamais exécutée ; le programme saute au Lbl 0 et n'atteindra jamais le Goto 1.
Citer : Posté le 04/03/2017 15:43 | #
D'accord merci,
Comment faire pour qu'il n'affiche pas 90 ou autre alors ?
Citer : Posté le 04/03/2017 15:46 | #
La méthode la plus simple à ma connaissance est d'effacer avant de réécrire :
Locate 16,3,V
Cette méthode a l'inconvénient de créer une sorte de clignotement. On pourrait faire divers calculs pour améliorer ceci, mais ce serait fatalement plus long ; tout dépend de la réactivité de ton programme et de la vitesse qu'il doit obtenir à la fin.
Citer : Posté le 04/03/2017 16:03 | #
Problème resolu merci beaucoup