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


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

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


et bien je veut un % de chance de légendaire,Jaune, bleu et blanc.
Un compteur de ce drop + un compteur de monstre tue ( de fois ou l'ont a appuis sur exe )
et aussi et surtout il faut appuyer et relacer exe, si l'on reste enfoncer cela ne marche pas

j'ai encore deux trois truc a faire pour que mon programme soit entièrement fini :
- un système de sauvegarde, au lieu de 0->A~G, Un If en entrée qui demande si on veut continue la sauvegarde ou non.
- au bout de 1000 Monstre, redémarrer le compteur a zéro avec un petit message, vous avez fini la faille ou un truc comme sa.
- je vaudrait faire une animation toute Basic pour le légendaire mais sa sa seras en dernier 8)

Mais déjà le programme est bien avancée
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 10/05/2014 15:05 | #


Existe-t-il une fonction "continue" en Basic ? (Pour revenir au début de la boucle)
Car sinon il y a moyen de faire encore plus efficace comme code (j'ai changé mon post, mais avec des Lbl en attendant, bien que j'ai un doute que l'on ai pas d'erreur du fait du Goto dans un If)
Par contre, tu veux qu'on t'aide pour ce que tu dois encore faire ou tu le dis juste comme ça ?
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 10/05/2014 15:10 | #


Oui, Next
Ça fonctionne très bien après =>.

Ou disons, WhileEnd.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 10/05/2014 15:25 | #


Pou l'instant ça va, je pense que je vais essayer tout seul et si je n'y arrive pas je demanderais comme d'habitude.
après sa ne me dérange pas que tu édite ton post je regarde toujours
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 10/05/2014 17:01 | #


Lephenixnoir a écrit :
Oui, Next
Ça fonctionne très bien après =>.
Ou disons, WhileEnd.

Et ça mercherai de faire If ...:Then WhileEnd:IfEnd ?
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 10/05/2014 17:01 | #


Oui.
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 17:06 | #


Ok. Merci. (J'ai modifié mon post du coup, comme ça il utilise plus de Lbl/Goto )
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

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


J'ai un petit problème ( comme toujours .. )
J’ai fais :

If D=1000
Then H+1→H    ( H est le conteur de faille, nombre de fois que l'ont a fais 1000 monstre en fait )
0→D
Locate 18,1,H
IfEnd


Le code en soit marche bien,
par contre sur la calculatrice il y a :


Monstre 0000
Et par la suite
Monstre 1000   ( pour 1 )


j'ai essayé de trouver une commande clean pour Locate mais je ne trouve pas
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 12/05/2014 11:43 | #


Tu n'as pas juste oublié d'effacer des 0 derrière ?
Il n'y a aucune raison que la calculatrice t'écrive 1 sur quatre chiffres.

Ajouté le 12/05/2014 à 11:44 :
Pour effacer le Locate:
ClrText

ou simplement
Locate 18,1,"    "


Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 12/05/2014 11:48 | #


Je m'excuse je me suis mal exprimer 8)
enfet c'est D qui bug, il affiche Quatre 0 pour les mille monstres, cela donne:

Monstre 1000 1 ( pour 1 monstre )
Monstre 2000 1 ( pour 2 monstres )
Monstre 1250 1 ( pour 125 monstres )
Etc
...


H marche très bien

EDIT

Ducoup tu m'as aidé :
If D=1000
Then H+1→H
0→D
Locate 13,1,"        "
Locate 18,1,H
IfEnd


merci beaucoup
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 12/05/2014 12:06 | #


Si j'ai bien compris ce que tu veux, Essaye ça :
D=>[b][brown]Locate[/brown][/b] [maroon]17[/maroon]-int(log(D)),[maroon]1[/maroon],D

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

Citer : Posté le 12/05/2014 12:09 | #


Cartix a écrit :

D=>[b][brown]Locate[/brown][/b] [maroon]17[/maroon]-int(log(D)),[maroon]1[/maroon],D


Je ne comprend pas ton code Cartix ..
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 12/05/2014 12:25 | #


log D, c'est le nombre de chiffres nécessaires pour écrire D. Donc Int (log D), c'en est la valeur entière. Or par exemple:
log 125 = 2.09691001301

donc
Int log 125 = 2

Or on veut 3 chiffres, donc on ajoute 1 au tout.
(Int log 125)+1 = 3

Enfin on retranche le tout à 18, pour que le texte s'écrive juste à gauche de la colonne 18.
18-((Int log H)+1) = 18-(Int log H)-1 = 17 - Int log H


Ce code présente néanmoins un problème, c'est si log H est entier. Dans ce cas, il ne faut pas l'augmenter. Je te propose donc:
Locate 18-(Int log H)-(log H!=Int log H),1,H

Ça peut paraître compliqué, mais en fait je ne retranche 1 que si le log n'est pas entier.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 12/05/2014 12:35 | #


Je comprend mais quand je le rentre dans ma calculette ça fais des truc bizarre alors je vais garder mon petit:
Locate 13,1,"        "
Locate 18,1,H

De plus je trouve que sa rend le code plus compliquai non ?

Par la suite de cette ligne de code, je voudrait afficher un message du style " faille 1 terminé "
Le tuto est complet, mais je n'est pas trouvé ( ou mal cherché.. ) pour tout clean l’écran → afficher le message → retrouver mon écran de base.

Je demande beaucoup je suis vraiment désoler
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 12/05/2014 12:38 | #


Si tu effaces l'écran, tu ne risques pas de retrouver l'écran d'origine, le texte est perdu.
Si tu veux le récupérer, il faut le réécrire.
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 12/05/2014 12:46 | #


Lephenixnoir a écrit :
Locate 18-(Int log H)-(log H!=Int log H),1,H

Ça peut paraître compliqué, mais en fait je ne retranche 1 que si le log n'est pas entier.

Bien vu, je n'y avais pas pensé. Par contre, il n'existe une fonction genre ceil ?
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

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


Si je fais un sous-programme, es que c'est rentable ?

Prog "Faille"

Faille:

"Bravo blabla "◢
Return


Une chose comme sa, la je n'est pas testé
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 12/05/2014 15:24 | #


Pour ton exemple, non, puisque tu remplace juste une ligne par un autre. par contre, si c'est pour afficher tout un tas d'infos, oui, c'est rentable car tu remplace une dizaine de lignes par une seule.
Ca dépend aussi du nombre de fois de l'appel du sous-programme : si tu l'appelle qu'une seule fois, c'est inutile
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Scrat Hors ligne Membre Points: 24 Défis: 0 Message

Citer : Posté le 12/05/2014 17:54 | #


J'ai eux une heure d’italien tout t'as l'heure alors.. 8)
voici mon programme avec la fonction de " faille "

Programme Principale

0->A~H       [i][green] ( Bientôt avec système de sauvegarde )[/green][/i]
"Monstres":" ":"legenvert":"legendaire":"Jaune":"Bleu":"Blanc"
Locate 13,1,D
Locate 13,3,C
Locate 13,4,B            [green][i]( Avant les chiffres de la première faille ne s'afficher que quand il y en avais au moins un, il y avais un blanc)[/i] [/green]
Locate 13,5,E
Locate 13,6,F
Locate 13,7,G
Locate 18,1,"N°"
Locate 20,1,H+1  [i][green] ( N° de la faille )[/green][/i]

While 1
Locate 13,1,D
Int (Ran#x1001)→A

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

Else If A=1000
Then Isz C
Locate 13,3,C

Else If A≥100 And A≤140
Then Isz E
Locate 13,5,E

Else If A≥329 And A≤360
Then Isz F
Locate 13,6,F

Else If A≥497 And A≤503
Then Isz G
Locate 13,7,G

IfEnd:IfEnd:IfEnd:IfEnd:IfEnd

If D=1000
Then H+1→H
Prog "Faille"
IfEnd

Do:LpWhile Getkey≠31
Do:LpWhile Getkey
WhileEnd


Faille:

ClrText
Locate 5,2," Félicitation "
Locate 4,3," Tu as vaincue la"
Locate 5,4,"Faille n°"
Locate 15,4,H
Locate 5,6,"Tu as obtenu"
Locate 18,6,B+C
Locate 6,7,"Legendaire"◢

ClrText
0→D
0→E
0→F    
0→G   [green][i]( seule les légendaire reste )[/i][/green]

"Monstres":" ":"legenvert":"legendaire":"Jaune":"Bleu":"Blanc"
Locate 13,1,D
Locate 13,3,C
Locate 13,4,B            
Locate 13,5,E
Locate 13,6,F
Locate 13,7,G
Locate 17,1,H+1
Return


Je trouve le code très compliquai personnellement
Mais voila le code marche en tout cas vraiment bien
merci encore un fois
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 12/05/2014 18:29 | #


C'est pas très compliqué, au moins le code est bien organisé
A la rigueur, si t'as un fichier C de 1000 lignes pas indenté, commenté, optimisé, là c'est incompréhensible
Finir est souvent bien plus difficile que commencer. — Jack Beauregard

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 127 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