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 » [Résolu] Problèmes incompréhensible if et goto
Drakalex007 Hors ligne Membre Points: 688 Défis: 0 Message

[Résolu] Problèmes incompréhensible if et goto

Posté le 26/03/2013 09:43

Salut à tous !

Depuis quelques jours, je suis en train de programmer un Monopoly sur ma calculette mais j'ai des problèmes incompréhensibles :

J'ai l'impression que quand je fais un code trop grand , un goto ne trouve pas le lbl qui lui correspond (go error alors que le goto et le lbl sont bien corrects, mais séparés par un 50aine de lignes). Même chose pour les if :quand je fais un if de 50 lignes, si la condition n'est mas remplie, la calculatrice s'arrête et ne vas pas a la fin du if (j'ai vérifié ) !

Je suis donc obligé de créer pleins de sous programmes et c'est très énervant, et j'ai calculé une quinzaine de sous programmes a faire ....

Si quelqu'un connait une solution ....

Merci, Drak


Nitrosax Hors ligne Ancien rédacteur Points: 1061 Défis: 17 Message

Citer : Posté le 26/03/2013 15:28 | #


De façon générale, il faut éviter d'utiliser goto et Lbl car ils sont à l'origine de beaucoup de problèmes, ralentissent l'exécution et encrassent le code.
L'idéal est de les remplacer par des boucles ou de créer des sous-programmes.
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 26/03/2013 16:56 | #


les goto et lbl font des go error si le programme est trop gros.
et faire des sous programmes n'est pas un mal, pour certains gros projets, il y a plus de 40 sous programmes !
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 !
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 27/03/2013 21:35 | #


Moi j'ai fait des If de beaucoup plus de 50 lignes, et je n'ai jamais eu de problème.
Vérifie qu'il n'y ai pas d'erreur entre ton If et ton IfEnd, comme par exemple des guillemets que tu n'as pas refermer.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Ray Hors ligne Membre Points: 1338 Défis: 18 Message

Citer : Posté le 27/03/2013 21:45 | #


Tu peux aussi aller coller ton code ici pour voir si tu n'as pas oublié quoi que ce soit.
Projets que je soutiens
Masquer
Drakalex007 Hors ligne Membre Points: 688 Défis: 0 Message

Citer : Posté le 10/04/2013 13:41 | #


D'accord, merci de vos réponses !

Le débugger n'a trouvé aucune erreur, donc j'ai décidé de mettre un petit bout du programme dans un fichier joint et de vous l'envoyer pour vous montrer le problème.
Si vous le lancez sur votre calculette, lancez d'abord Startup ( attention, elle effacera la matrice A et prendra aussi 10 000 octets). Ensuite lancez Monopoly, Il va vous demander un nombre, je vous conseille pour tester d'entrer 2, il vous mettra normalement "Mediterranean Avenue", jusque là aucun problème, mais si vous mettez 6, il devrait normalement afficher "reading Railroad", qui se trouve après le grand IF des maisons, mais il ne le fait pas, il s'arrête avant... et c'est ICI le véritable problème !

Si vous pouvez donc jeter un oeil au code !

Merci ,drakalex

EDIT par Ziqumu : Pour avoir la pièce jointe cliquez ici.
Ziqumu Hors ligne Membre d'honneur Points: 3055 Défis: 9 Message

Citer : Posté le 10/04/2013 18:19 | #


J'ai pas exécuté le code, mais j'ai regardé vite fait (donc je peux me tromper), mais entre ton If des maison et celui de Reading Railroad, il y a une boucle qui attend que l'utilisateur appui sur une touche. Normal qu'elle soit là cette boucle ?
Non j'ai rien dit c'est normal.



Ajouté le 10/04/2013 à 18:59 :
Tu as oublié un guillemet à la fin de \"laisser\", ce qui empêche l’interpréteur de voir le IfEnd.

Pour info, tu verra que ton R ne s\'affiche pas, met en deux, j\'ai jamais compris pourquoi il y avais ce bug, mais c\'est pas bien grave.
Drakalex007 Hors ligne Membre Points: 688 Défis: 0 Message

Citer : Posté le 10/04/2013 19:08 | #


Alors là, j'ai vraiment honte... une erreur aussi bête.. En tout cas merci infiniment de m'avoir aidé cela faisait bien une semaine que j'étais bloqué :/ .

Et je ne comprends pas ton histoire de R, le R de "laisser" s'affiche très bien !

Et au fait, pour ce que tu as barré, oui la boucle est normale, je n'ai pas fini de coder le jeu !

Ah et je comprends pour quoi le débugger en ligne n'a rien trouvé, vu que j'ai copié-collé le code, 2 fois de suite le "laisser" s'est retrouvé sans guillemet à la fin, ce qui a donc fait un nombre égal de guillemets !
Tenmatx Hors ligne Membre Points: 996 Défis: 2 Message

Citer : Posté le 10/04/2013 20:29 | #


Tenmatx a écrit :

Vérifie qu'il n'y ai pas d'erreur entre ton If et ton IfEnd, comme par exemple des guillemets que tu n'as pas refermé.


Je te l'avais dit...
Mais tu n'as pas à avoir honte, ça m'arrive très souvent à moi aussi. Aujourd'hui j'ai passé une demie heure à chercher pourquoi un de mes programmes ne marchait pas avant de me rendre compte que j'avais pas refermer les guillemets.
Mes programmes de maths
Mes programmes de maths

Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Mes meilleurs jeux
Mes meilleurs jeux

Jeu gagnant des 48h CPC n°12

Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)

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