Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Aide pour un jeu
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Aide pour un jeu

Posté le 09/05/2014 11:57

Alors voila, j'aime beaucoup Diablo, et je voulais créer un jeu a son honneur.
Dans Diablo 3, il y a théoriquement 1 Chance sur 1000 d'avoir un légendaire,
j'ai voulut créer un jeu avec une chance sur 1000.


0→A
Do
Int (Ran#x1001)→A
If A=0
Then legendaire
IfEnd
If A=1000
Then "legenvert"
IfEnd
LpWhile A=1001


Le code marche parfaitement, mais le problème vient que je voudrait faire un compteur.
J'ai voulut commencer par un simple Locate, cela afficher toujours zéro.
Je voudrait faire un compteur pour le nombre de légendaire ( le plus simple ), ainsi qu'un compteur pour le nombre de fois que l'ont appuis sur " exe "

Je vous remercier d'avance pour votre aide, et précise au passage que je n'est jamais rien coder sur Casio, je me suis lancer il y a peu de temps, donc mon programme n'est pas du tout ergonomique ...
voila voila


Scrat Hors ligne Membre Points: 24 Défis: 0 Message

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 !
Lephenixnoir Hors ligne Administrateur Points: 24246 Défis: 170 Message

Citer : Posté le 09/05/2014 17:43 | #


Sauf que A est toujours supérieur ou égal à 0 !
A=0=>Isz B
A=1000=>Isz C
Isz Z

remplira le même rôle pour plus simple.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

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 :
1337
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

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
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 09/05/2014 18:23 | #


Lephenixnoir a écrit :
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
Maliafo Hors ligne Membre Points: 236 Défis: 27 Message

Citer : Posté le 09/05/2014 20:35 | #


Et moi j'ai juste recopié le code précédant en rajoutant les exe
Comment recouvrir la Terre avec du cuir ?
Avec la semelle de nos chaussures, on en fait autant
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

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
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

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
1337
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

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
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

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
1337
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 10/05/2014 12:23 | #


Il faut rajouter une boucle ou bien en If ?
Lephenixnoir Hors ligne Administrateur Points: 24246 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 10/05/2014 12:37 | #


5[b]->[/b]Dim List [maroon]1[/maroon]
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]

Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 10/05/2014 12:42 | #


Je ne comprend pas cette parti:

If Not A Then
Isz B
Locate 13,4,B


SI ce n'est pas A alors on rajoute a B ... ?
Maliafo Hors ligne Membre Points: 236 Défis: 27 Message

Citer : Posté le 10/05/2014 12:47 | #


Si tu mets
If A


C'est comme si tu mettais
If A != 0


Donc du coup, mettre
If Not A

ça revient a
If A = 0


qui est la condition de départ pour incrémenter B
Comment recouvrir la Terre avec du cuir ?
Avec la semelle de nos chaussures, on en fait autant
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

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 ?
1337
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

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
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 10/05/2014 12:55 | #


le plus rapide serais avec une liste non ?
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 10/05/2014 12:56 | #


Catrix : Fait attention, pour les THEN y a un retour a la ligne
1337
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 10/05/2014 13:11 | #


Xavier59 a écrit :
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)
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

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)
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 50 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