Posté le 08/09/2016 15:38
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 203 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 08/09/2016 19:38 | #
Salut mon gars.
Pour un écran de menu, tu peux faire un truc simple. Tu crées un programme "MENU" (ou "LOL", "PLS", "MOIJE", enfin bref comme tu veux) qui te serviras de menu. Dans ce programme, tu sautes dans le sous-programme du moteur de jeu avec la commande Prog.
Lorsque tu veux quitter le jeu, il te suffit simplement d'employer la commande "Return" dans ton programme qui te feras revenir à là où tu étais dans ton programme MENU. Il suffit simplement de mettre tout ça dans une boucle et c'est chié. Regarde :
While 1
"MegaSnake !"
etc.
...
Prog "MOTEUR"
Whileend
Programme MOTEUR :
(le moteur du jeu)
...
"GAME OVER"
Return
Pour ce qui est des scores, tu peux enregistrer ça dans une matrice colonne, mais le plus intuitif pour toi serait de faire ça sur une liste. Depuis ton programme de jeu, tu peux exploiter des variables que tu retrouves dans le menu LIST de ta calto. C'est trop lol. Et tu sais quoi ? Cela fonctionne PAREIL qu'avec des lettres, à la différence près que tu peux jouer avec les indices. Voici des exemples de variable :
1→List 1[2] //la case 2 de la liste 1
1→Mat A[1,1]// la case 1,1 de la matrice A
Donc en gros, mettons que ton score final soit retenu dans la variable S. Voici comment enregistrer ton score avec une boucle simple. Mettons qu'il y ait un top 5 :
Dim List 1≠5⇒5→Dim List 1 //on initialise la liste si c'est pas fait.
For 1→A to 5
If List 1[A]<S
Then S→List 1[A]
"New record !"
Break //on sort de la boucle
IfEnd
Next
Bref. Sache que tu peux tout à fait mettre une variable à la place de l'indice. Maintenant yolo, vole, petit oiseau.
Cowiax Invité
Citer : Posté le 09/09/2016 17:17 | #
Merci de ta réponse ^^. en attendant j'avais fais un truc dégueu de type :
Pour les score je les mets où dans le code en fait (ui je suis un tit peu bête)
et pour le menu j'ai fait quelque chose assez lourd avant de voir ton message de type:
Lbl 7
ClrText
4→M
Locate 5,4,"× Jouer"
Locate 7,6,"Quitter"
Do
Do:LpWhile Getkey
Do
Getkey
LpWhile Ans=0
M→N
Ans=28×M-4×Dsz M
Ans=37×M-6×Isz M
Locate 5,M,"×⇒"
M-N×Locate 5,N," "
LpWhile Ans-31
ClrText
M=6×Stop
et à la fin pour revenir au début je faisais :
Do
13→M
13=M×Goto 7
WhileEnd
Ducoup je te remercie beaucoup, je vais pouvoir diffuser ça au lycée et sur le site bientôt
Cowiax Invité
Citer : Posté le 09/09/2016 17:30 | # | Fichier joint
Petit problème, j'utilise déjà une liste et il me dit syntax error du coup voici le code complet
Citer : Posté le 09/09/2016 21:59 | #
Bon, je regarde ton code, et je vois un truc bizarre.
Do:LpWhile Getkey
Do
Getkey
LpWhile Ans=0
C'est mosh. Ta deuxième ligne ne sert à RIEN. Retire-la. De toute façon, tu ne sortiras pas de la troisième boucle tant que le joueur n'appuie pas sur une touche.
Ensuite. J'ai retrouvé la syntax error (ou l'une des syntax error), au début du code :
Ans=37⇒M-6⇒Isz M
Non, non, non et non. Ceci :
veut dire "Décrémente M si la variable Ans égale 28". Tu ne peux utiliser qu'une action quand tu vérifies une condition avec le "⇒". Si tu veux faire plusieurs actions (genre effectuer M-4→M et Dsz N) conditionnellement, utilise un if - then - ifend.
Je ne sais pas ce que t'as voulu faire précisément. Mais en tous les cas, tu violes la loi de la calculatrice en écrivant un truc pareil.
Par ailleurs, attention :
13→M
13=M⇒Goto 7
WhileEnd
Soit c'est une boucle while - whileEnd, soit c'est une boucle Do - LpWhile. Ensuite, j'adore le truc inutile de demander à ta calculatrice d'aller au label 7 si M égale 13 alors que tu attribues à M la valeur 13 juste avant. C'est conceptuel.
Autre chose...
Then If G=31
Then Text 1,1,""◢ //j'imagine que c'est pour tester ton programme et le mettre en pause... Parce que sinon c'est useless.
Bon, sinon j'vais pas faire le reste à ta place quand même. Yolo.
Cowiax Invité
Citer : Posté le 14/09/2016 05:26 | #
Encore merci de ta réponse, j'ai essayé avec ce que tu me disais sur la syntax error, sans la ligne avzc le isz, mon menu ne fonctionne pas ^^. Ensuite, pour le retour tu as raisonn c'est débile^^ et enfin pour la logne avzc le texte si je ne la mets pas le prgrmnee fonctionne pas, je sais pas trop pourquoi, et la ligne inutile je m'en suis rendu compte après car le menu viens d'un morpion^^ (si je poste le prgrm je citerai le créateur).
Citer : Posté le 14/09/2016 13:00 | #
Le mieux est que tu réécrives ton code. Ce que tu as fait est un peu bordélique, en fait.
Couche ce que tu veux faire sur papier, fais des petits schémas, des bouts de code sur papier, etc. Après, une fois que tu as bien organisé ton truc, tu peux commencer à construire ton code. c'est frustrant de devoir réécrire un truc, mais ça va clarifier les choses et c'est sans doute mieux que de rafistoler un vieux fouillis qui ne fonctionne que de temps à autres.