Posté le 09/05/2014 11:57
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 137 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 09/05/2014 17:42 | #
Sa marche parfaitement :
0->A~C
"Legendaires":"Legenverts":"Monstre Tué"
While 1
Locate 13,1,B
Locate 13,2,C
Locate 13,3,K
A=0=>Isz B
A=1000=>Isz C
A≥0=>Isz K
Do:LpWhile Getkey!=31
Do:LpWhile Getkey
WhileEnd
Pour un premier programme je suis assez fière de moi surtout dans les connaissance, merci beaucoup, je vais encore un peu le travailler !
Citer : Posté le 09/05/2014 17:43 | #
Sauf que A est toujours supérieur ou égal à 0 !
A=1000=>Isz C
Isz Z
remplira le même rôle pour plus simple.
Citer : Posté le 09/05/2014 17:46 | #
Lephenix noir :
Oui, c'est ce qu'il cherche.
A chaque coût Z est créditer d'un.
Qu'il gagne ou pas un légende*
EDIT :
Citer : Posté le 09/05/2014 17:46 | #
A oui !
j'ai est profiter pour changer la ligne en premier
0->A~D
j'ai remplacé Z par K puis par D
Citer : Posté le 09/05/2014 18:23 | #
Cartix, si tu tiens à n'afficher que lorsque qu'un legen* est trouvé, alors tu ferais mieux de ne pas demander à l'utilisateur d'appuyer sur EXE à chaque tour, non ?
Oui, mais moi tu sais je me suis juste contenter d'écrire le code de Maliafo d'une manière plus propre, (en virant ce qui était inutile et en ajoutant un else if)
Par contre, son code avait l'utilité de ne réafficher les chiffres que quand ceux-ci changeaient
Citer : Posté le 09/05/2014 20:35 | #
Et moi j'ai juste recopié le code précédant en rajoutant les exe
Avec la semelle de nos chaussures, on en fait autant
Citer : Posté le 10/05/2014 00:26 | #
J'ai fini mon programme cette fois en entier:
0->A~G
"Monstres":" ":"legenvert":"legendaire":"Jaune":"Bleu":"Blanc"
While 1
Locate 13,1,D
Locate 13,3,C
Locate 13,4,B
Locate 13,5,E
Locate 13,6,F
Locate 13,7,G
Int (Ran#x1001)→A
A=0=>Isz B
A=1000=>Isz C
A≥100 And A≤140⇒Isz E
A≥329 And A≤360⇒Isz F
A≥497 And A≤503⇒Isz G
Isz D
Do:LpWhile Getkey!=31
Do:LpWhile Getkey
WhileEnd
Mon unique problème restant est que le temps entre chaque EXE est d'environ 0.5sec..
je pense pas que l'ont puisse améliorer la vitesse mais dans le doute je demande en quête de savoir
Citer : Posté le 10/05/2014 00:30 | #
Oui, il y a moyen.
Car les Locate mettent du temps a s'afficher. Mar exemple même si E reste pareil, il se re affiche.
Il faudrait donc que E ne s'affiche que si il a été modifie
Pareil pour le reste.
Je te laisse essayé de le faire
Citer : Posté le 10/05/2014 00:32 | #
En gros seulement D changerais a chaque boucle..
je vais essayer de faire ça merci, je demanderais de l'aide si je galère trop
Citer : Posté le 10/05/2014 00:34 | #
Oui D + une autre lettre.
Donc ça ferait seulement 2 Locate au lieu de 5 a afficher a chaque fois
Avec ça tu devrais passer de 0,5 a 0,3 secondes
Citer : Posté le 10/05/2014 12:23 | #
Il faut rajouter une boucle ou bien en If ?
Citer : Posté le 10/05/2014 12:30 | #
Non, rajoute un If pour savoir si les données ont changé.
En gros, si A vaut 0, tu ré-affiches B.
Citer : Posté le 10/05/2014 12:37 | #
0[b]->[/b]D
[gray]"Monstres":" ":"legenvert":"legendaire":"Jaune":"Bleu":"Blanc"[/gray]
[b][red]Lbl[/red][/b] [maroon]0[/maroon]
0[b]->[/b]E
[b][brown]Locate[/brown][/b] [maroon]13[/maroon],[maroon]1[/maroon],D
[b][green]While[/green][/b] [maroon]1[/maroon]
Int (Ran#x1001)→A
[b][blue]If[/blue][/b] A=[maroon]1000[/maroon]:[b][blue]Then[/blue][/b] [maroon]1[/maroon][b]->[/b]E
[b][blue]Else[/blue][/b] [b][blue]If[/blue][/b] Not A:[b][blue]Then[/blue][/b] [maroon]2[/maroon][b]->[/b]E
[b][blue]Else[/blue][/b] [b][blue]If[/blue][/b] Abs(A-120)≤20:[b][blue]Then[/blue][/b] [maroon]3[/maroon][b]->[/b]E
[b][blue]Else[/blue][/b] [b][blue]If[/blue][/b] Abs(A-344.5)≤15.5:[b][blue]Then[/blue][/b] [maroon]4[/maroon][b]->[/b]E
[b][blue]Else[/blue][/b] [b][blue]If[/blue][/b] Abs(A-500)≤3:[b][blue]Then[/blue][/b] [maroon]5[/maroon][b]->[/b]E
[b][blue]Else[/blue][/b] [b][green]WhileEnd[/green][/b]
[b][blue]IfEnd[/blue][/b]:[b][blue]IfEnd[/blue][/b]:[b][blue]IfEnd[/blue][/b]:[b][blue]IfEnd[/blue][/b]:[b][blue]IfEnd[/blue][/b]
[b]Isz[/b] List [maroon]1[/maroon][E]
[b][brown]Locate[/brown][/b] [maroon]13[/maroon],E+2,List [maroon]1[/maroon][E]
[b][green]Do[/green][/b]:[b][green]LpWhile[/green][/b] Getkey!=[maroon]31[/maroon]
[b][green]Do[/green][/b]:[b][green]LpWhile[/green][/b] Getkey
[b][green]WhileEnd[/green][/b]
Citer : Posté le 10/05/2014 12:42 | #
Je ne comprend pas cette parti:
Isz B
Locate 13,4,B
SI ce n'est pas A alors on rajoute a B ... ?
Citer : Posté le 10/05/2014 12:47 | #
Si tu mets
C'est comme si tu mettais
Donc du coup, mettre
ça revient a
qui est la condition de départ pour incrémenter B
Avec la semelle de nos chaussures, on en fait autant
Citer : Posté le 10/05/2014 12:49 | #
Moi non plus je ne la comprends pas.
Ça devrait être :
If A=0
Then Isz B
Locate 13,4,B
Ifend
Idem pour C etc
Ajouté le 10/05/2014 à 12:50 :
C'est ce compliqué la vie "If Not A" ...
C'est plus rapide ?
Citer : Posté le 10/05/2014 12:53 | #
Oui. Et j'ai également édité mon post précédent pour proposer une option avec les liste
Citer : Posté le 10/05/2014 12:55 | #
le plus rapide serais avec une liste non ?
Citer : Posté le 10/05/2014 12:56 | #
Catrix : Fait attention, pour les THEN y a un retour a la ligne
Citer : Posté le 10/05/2014 13:11 | #
Catrix : Fait attention, pour les THEN y a un retour a la ligne
C'est possible (Ca fait longtemps que j'ai plus programmé en BASIC Casio)
Citer : Posté le 10/05/2014 13:44 | #
J'ai quand même trouvé ça assez compliqué ton code sachant que tu voulais seulement générer le fait d'avoir une chance sur 1000 d'avoir un légendaire et un petit compteur (je dois être en retard ou alors tu as voulu rajouter des trucs)