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 - Questions sur les transferts


Index du Forum » Questions sur les transferts » Erreur dans mon code Basic (jeu du + ou -)
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Erreur dans mon code Basic (jeu du + ou -)

Posté le 02/09/2013 16:42

Bonjour tout le monde
Je suis en train d'apprendre à programmer en BASIC et j'ai créé mon premier jeu, le fameux + ou -.
J'ai d'abord fais le système de jeu 1 joueur avec le random, puis j'ai rajouté les intros, mis un système de compteur de coups, j'ai ensuite rajouté le choix d'echelle, et enfin le système 2 joueurs.
Jusqu'à cette dernière étape tous fonctionner bien. Mais en ajoutant toute la partie 2 joueurs, la partie 1 joueur a un bug Le truc c'est que je sais pas à quoi c'est du. La calto me dit "Erreur saut" avant de me renvoyer à cette partie du code: "Y<2⇒Goto 0" (j'ai pas mis de guillemet dans mon code).
J'ai vérifié il y a qu'un seul Lbl 0 et d'après ce que j'ai lu on peut très bien mettre plusieurs Goto avec la même valeur dans le code.

J'ai tout retapé mon code ici
(Au départ je voulais pas, je voulais directement le transféré Calto → PC → Forum mais j'ai mis 1h30 avant de me dire que c'est un bordel incommensurable pour qu'une calculette Graph 35+ USB soit reconnu sur un PC)

0→A~Z
Locate 4,4,"LE NOMBRE JUSTE"◢
ClrText
Locate 4,2,"NOMBRE DE JOUEUR"
Locate 5,4,"1-JOUEUR"
Locate 5,5,"2-JOUEUR"
?→Y
ClrText
Locate 4,2,"CHOISIR ECHELLE"
Locate 9,4,"100"
Locate 9,5,"1000"
Locate 9,6,"10000"
?→K
[blue]If[/blue] K<1000
Then 100→K
Else [blue]If[/blue] K<10000
Then 1000→K
Else 10000→K
[green]IfEnd
IfEnd[/green]
ClrText
Locate 1,2,"VOUS DEVEZ ENTRER UN"
Locate 1,3,"NOMBRE ENTRE 1 ET"
Y<2⇒Locate 1,5,"LA CALC A FAIT PAREIL"
Y>1⇒Locate 1,5,"J-2 CHERCHE LE NOMBRE"
Locate 1,6,"LES 2 NOMBRES DOIVENT"
Locate 1,7,"ETRE LES MEMES"
Locate 18,3,K◢
ClrText
Y>1⇒Goto 1
[red]Y<2⇒Goto 0[/red]
Lbl 1
Locate 2,3,"JOUEUR 1 ENTREZ UN"
Locate 2,4,"NOMBRE ENTRE 1 ET"
Locate 19,4,K
?→A
A>K⇒K
ClrText
Lbl 0
0→V
Locate 4,3,"APPUYEZ SUR"
Locate 5,4,"POUR DEMARRER"
Locate 7,5,"LA PARTIE"
Do
Locate 16,3,"EXE"
Locate 16,3,"  "
LpWhile Getkey≠31
ClrText
Y>1⇒Goto 2
Int (KRan# +1)→A
Lbl 2
Do
?→B
[blue]If[/blue] B>A
Then "C'EST MOINS"
Else [blue]If[/blue] B<A
Then "C'EST PLUS"
[green]IfEnd
IfEnd[/green]
V+1→V
LpWhile A≠B
ClrText
Locate 3,4,"VOUS AVEZ REUSSI!"
Locate 3,5,"NOMBRE DE COUPS:"
Locate 19,5,V
Locate 3,3,"REPONSE:"
Locate 12,3,B◢
ClrText
Locate 1,3,"REJOUER?"
Locate 1,4,"1-OUI"
Locate 1,5,"2-NON"
?→R
ClrText
R<1⇒Stop
[blue]If[/blue] Y>1 And R=1
Then Goto 1
Else [blue]If[/blue] Y<2 And R=1
Then Goto 0
[green]If End[/green]


Si vous voyez où est l'erreur dans mon code et me le dire ça serai sympas
Si vous avez d'autre remarque j'accepte aussi !


1, 2 Suivante
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 02/09/2013 16:58 | #


Il manque de If Then IfEnd

ERREUR : 7 IF trouvé(s), 6 Then trouvé(s), 4 IfEnd trouvé(s).

J'ai untilisé le debuggeur de Planète Casio
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 02/09/2013 17:03 | #


oui, il manque un ifend a la fin

mais fait attention avec les label, ils peuvent causer des bugs sans raison (préfère plutôt les boucles)
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 02/09/2013 17:08 | #


En fait je voyais pas comment on pouvait faire sans Lbl :-/ Surtout dans l'ordre ou j'ai implémenté les fonctions surement...

Merci en tout cas je m'attendais pas à une réponse aussi rapide Je vais voir tous ça et je vous tien au courant
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 02/09/2013 17:27 | #


un exemple sans label ;)(j'ai fait ça rapidement, donc je ne suis pas sur que cela marcherait si tu transférait tel quel, mais dans l'idée c'est comme ça)


0→A~Z
Locate 4,4,"LE NOMBRE JUSTE"◢
ClrText
Locate 4,2,"NOMBRE DE JOUEUR"
Locate 5,4,"1-JOUEUR"
Locate 5,5,"2-JOUEUR"
?→Y
ClrText
Locate 4,2,"CHOISIR ECHELLE"
Locate 9,4,"100"
Locate 9,5,"1000"
Locate 9,6,"10000"
?→K
If K<1000
Then 100→K
Else If K<10000
Then 1000→K
Else 10000→K
IfEnd
IfEnd
ClrText
Locate 1,2,"VOUS DEVEZ ENTRER UN"
Locate 1,3,"NOMBRE ENTRE 1 ET"
Y<2⇒Locate 1,5,"LA CALC A FAIT PAREIL"
Y>1⇒Locate 1,5,"J-2 CHERCHE LE NOMBRE"
Locate 1,6,"LES 2 NOMBRES DOIVENT"
Locate 1,7,"ETRE LES MEMES"
Locate 18,3,K◢
ClrText


[blue]if Y>1
then [/blue]
Locate 2,3,"JOUEUR 1 ENTREZ UN"
Locate 2,4,"NOMBRE ENTRE 1 ET"
Locate 19,4,K
?→A
A>K⇒K
ClrText
[blue]ifend[/blue]
[blue]do[/blue]
0→V
Locate 4,3,"APPUYEZ SUR"
Locate 5,4,"POUR DEMARRER"
Locate 7,5,"LA PARTIE"
Do
Locate 16,3,"EXE"
Locate 16,3,"  "
LpWhile Getkey≠31
ClrText
[blue]not Y>1⇒Int (KRan# +1)→A[/blue]
Do
?→B
If B>A
Then "C'EST MOINS"
Else If B<A
Then "C'EST PLUS"
IfEnd
IfEnd
V+1→V
LpWhile A≠B
ClrText
Locate 3,4,"VOUS AVEZ REUSSI!"
Locate 3,5,"NOMBRE DE COUPS:"
Locate 19,5,V
Locate 3,3,"REPONSE:"
Locate 12,3,B◢
ClrText
Locate 1,3,"REJOUER?"
Locate 1,4,"1-OUI"
Locate 1,5,"2-NON"
?→R
ClrText
R<1⇒Stop
[blue]lpWhile 1[/blue]
If End

Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 02/09/2013 17:43 | #


Et au passage, tu peux optimiser ton code. Au début, par exemple, tu peux mettre :


For 4→A to 6
Locate 9,A,10*10^(A-3)
Next
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 02/09/2013 17:44 | #


Merci pour le code avec les boucles

Ajouté le 02/09/2013 à 17:53 :
@Position: Whoua merci !

Ajouté le 02/09/2013 à 19:10 :
Par contre c'est possible de mettre une boucle dans une boucle en utilisant deux fois Do LpWhile ? (comme tu l'as fais Dodormeur)
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 02/09/2013 19:16 | #


bien sur tu peux meme en mettre autant que tu veux a l interieur
c est egalement pareille avec les conditions et... bah en fait tout je crois
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 02/09/2013 19:29 | #


tu peux tout à fait faire :


[red]Do[/red]
[blue]Do [/blue]
[green]If A=3[/green]
[green]Then[/green] [maroon]Do[/maroon]
Locate 1,1,"Hello"
[maroon]LpWhile C<6[/maroon]
[green]IfEnd[/green]
[blue]LpWhile A=1[/blue]
[red]LpWhile B!=2[/red]


Ajouté le 02/09/2013 à 19:29 :
et même plus
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 02/09/2013 19:34 | #


Bon j'ai repris mon code et ça donne ça:
0→A~Z
Locate 4,4,"LE NOMBRE JUSTE"◢
ClrText
Locate 4,2,"NOMBRE DE JOUEUR"
Locate 5,4,"1-JOUEUR"
Locate 5,5,"2-JOUEUR"
?→Y
ClrText
Locate 4,2,"CHOISIR ECHELLE"
For 4→W To 6
Locate 3,W,10*10^(W-3)
Next
?→K
If K<1000
Then 100→K
Else If K<10000
Then 1000→K
Else 10000→K
IfEnd
IfEnd
ClrText
Locate 1,2,"VOUS DEVEZ ENTRER UN"
Locate 1,3,"NOMBRE ENTRE 1 ET"
Y<2=>Locate 1,5,"LA CALC A FAIT PAREIL"
Y>1=>Locate 1,5,"J-2 CHERCHE LE NOMBRE"
Locate 1,6,"LES 2 NOMBRES DOIVENT"
Locate 1,7,"ETRE LES MEMES"
Locate 18,3,K◢
ClrText
Lbl 0
If Y>1
Then Locate 2,3,"JOUEUR 1 ENTREZ UN"
Locate 2,4,"NOMBRE ENTRE 1 ET"
Locate 19,4,K
?→A
A>K=>K
IfEnd
ClrText
0→V
Locate 4,3,"APPUYEZ SUR"
Locate 5,4,"POUR DEMARRER"
Locate 7,5,"LA PARTIE"
Do
Locate 16,3,"EXE"
Locate 16,3,"  "
LpWhile Getkey≠31
ClrText
If Y<2
Then Int (KRan# +1)→A
IfEnd
Do
?→B
If B>A
Then "C'EST MOINS"
Else If B<A
Then "C'EST PLUS"
IfEnd
IfEnd
V+1→V
[red]LpWhile A≠B[/red]
ClrText
Locate 3,4,"VOUS AVEZ REUSSI!"
Locate 3,5,"NOMBRE DE COUPS:"
Locate 19,5,V
Locate 3,3,"REPONSE:"
Locate 12,3,B◢
ClrText
Locate 1,3,"REJOUER?"
Locate 1,4,"1-OUI"
Locate 1,5,"2-NON"
?→R
ClrText
If R<2
Then Goto 0
Else Stop
IfEnd


Le debuggeur dit qu'il y a pas de faute mais la calto elle dit qu'il y a une erreur à LpWhile A≠B
Pourtant cette partie du code ça date de la première version de mon programme
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 02/09/2013 20:07 | #


Je trouve pas d'erreur :huh:
T'es sur que t'as pas fait de faute ? (guillemets manquant etc...)
C'est quoi comme erreur ?
Tweaks : ||||| ||||
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 02/09/2013 20:12 | #


tu as recopié a la main ou avec FA-124? parceque il n'y a rien de bizarre...
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 02/09/2013 20:15 | #


Alors déjà, si ça peux vous aidez, le bug se produit qu'en mode "1 joueur". Le mode 2 joueur fonctionne bien...
Ça m'affiche "Erreur Syntaxe" juste après que le programme affiche les règles de jeu pour 1 joueur ("VOUS DEVEZ ENTRER UN NOMBRE ENTRE 1 ET 100 LA CALC A FAIT PAREIL LES 2 NOMBRES DOIVENT ETRE LES MEMES")

Ajouté le 02/09/2013 à 20:16 :
J'ai recopié à la main.
Je n'arrivais pas à faire reconnaître ma Graph 35+ par FA 124
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 02/09/2013 20:18 | #


Je vois pas, vérifie que tu as bien tapé le code.

D'autres optimisations en vrac :


B≠A⇒Locate 1,1,Strmid("C'est moinsC'estplus",1+11(B<A),12)
Isz V


A la place de


If B>A
Then "C'EST MOINS"
Else If B<A
Then "C'EST PLUS"
IfEnd
IfEnd
V+1→V



Y<2⇒RanInt#(1,K) →A


A la place de


If Y<2
Then Int (KRan# +1)→A
IfEnd



100+900(K≥1000)+9000(K≥10000)→K


A la place de


If K<1000
Then 100→K
Else If K<10000
Then 1000→K
Else 10000→K
IfEnd
IfEnd
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 02/09/2013 20:19 | #


Je suis quasi sûr que tu as oublié un guillemet dans l'une des lignes de ton texte ("VOUS DEVEZ ENTRER UN NOMBRE ENTRE 1 ET 100 LA CALC A FAIT PAREIL LES 2 NOMBRES DOIVENT ETRE LES MEMES")

Quand t'en oublie un la calculette continue à lire le texte que tu veux afficher, et affiche une erreur syntaxe si elle ne trouve pas de guillemet ou bout d'un certain nombre de caractère ... (ici c'est au niveau du LpWhile)
Tweaks : ||||| ||||
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 02/09/2013 20:21 | #


pour les optimisations avec les strings c'est peut-être pas nécessaire si il est toujours en train d'apprendre le basic, vaut mieux pas compliquer le code pour 3 octets
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
Cliquer pour enrouler
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 02/09/2013 20:22 | #


Sauf que quand c'est comme ça, ça renvoie plutôt à la fin du programme ou au prochain guillemet.
Ce serait pas plutôt un Ifend manquant ?

@Dodormeur : ouais, je suis peut-être allé un peu loin
Remiweb Hors ligne Membre de CreativeCalc Points: 1040 Défis: 32 Message

Citer : Posté le 02/09/2013 20:27 | #


@Positon Ça planterait à tous les coups, pas uniquement en mode 1 joueur
Alors que le texte ou il manque le guillemet ne s'affiche que quand on joue seul
Tweaks : ||||| ||||
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 02/09/2013 20:33 | #


OMG OUI ! J'ai oublié de mettre un guillemet à "UN NOMBRE ENTRE 1 ET" ! Je suis sur qu'il y était à un moment, mais que j'ai du l'effacer sans faire exprès en aillant la calto allumé à côté de moi alors que je faisais de l'ordi

Je peux enfin dormir l'esprit tranquille !

Merci à tous !

@Position: Du premier coup d'oeil je comprends pas trop mais je vais essayer de mis pencher pour pas copier bêtement

Encore merci !
Positon Hors ligne Rédacteur Points: 2396 Défis: 57 Message

Citer : Posté le 03/09/2013 08:43 | #


Regarde ici ou , tu apprendras pas mal de choses
Boby12 Hors ligne Membre Points: 39 Défis: 0 Message

Citer : Posté le 03/09/2013 11:15 | #


J'ai déjà un peu regardé avant, d’ailleurs c'est la que j'ai appris à utilisé les Goto et Lbl (je sais pas si ça était une bonne chose )
Mais je vais bien sûr continuer à regarder
1, 2 Suivante

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