Probleme "OR" dans condition: - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Probleme "OR" dans condition: (/showthread.php?tid=1351) |
Probleme "OR" dans condition: - zneman - 17-07-2007 Bonjour. Alors, voila mon problème, j'explique brièvement: - Si le joueur défenseur a une fortification plus élevée que la palissade, l'attaquant doit utiliser des armes de siège (logique ). Sinon, si le joueur defenseur n'a qu'une palissade ou, moins qu'une palissade, je compare juste la force des troupes attaquantes et la défense des troupes défensives. - Si le joueur défenseur a plus qu'une palissade et que l'attaque des armes de siege est supérieur a la défense des fortifications, je passe a la comparaison des troupes (comme si le joueur n'avait pas de fortifications. Bref... j'espère que cette explication vous met dans le sujet :/ Mon probleme est le suivant: Code PHP :
Donc si le joueur a une défense inférieur a la palissade ou si le joueur a une attaque des armes de siege supérieur a la défense des fortifications ennemie... Mon code est comme tel: Code PHP :
Donc, mon code fonctionne tres bien quand le joueur defenseur n'a pas de fortifications ou alors que la force des armes de siege de l'attaquant est inferieur a la defense des fortifications. En revanche, quand la force des armes de sieges est superieur a celle des fortifs et que l'on doit normalement comparer les troupes, il me met une page... vide Est ce le "OR" qui est dans la condition qui va pas ou c'est autre chose ? RE: Probleme "OR" dans condition: - TeKRunneR - 19-07-2007 A première vue j'ai pas trouvé d'erreur flagrante dans ton code, je te conseille donc de faire les choses suivantes : - si tu y as accès vérifie dans ton php.ini que toutes les erreurs et les warnings sont bien affichées, il est possible que tu obtiennes une page blanche parce qu'il y a une erreur non affichée - si la solution précédente ne donne rien, essaie de mettre des echo 'Le défenseur a plus qu'une palissade';, echo 'L'armée de l'attaquant est plus petite', etc. après tes if, histoire de voir ou ton programme passe et ou il ne passe pas. S'il ne passe pas là ou il devrait tu peux essayer d'afficher le contenu des variables avec des echo également. C'est une méthode de debug tout ce qu'il y a de plus basique, mais ça reste très efficace. RE: Probleme "OR" dans condition: - Zamentur - 20-07-2007 ben il y a une erreur de construction de code tout simplement: Voici ce que tu as fait en résumé: Code PHP :
Donc là si tu regardes bien si "la force des armes de sieges est superieur a celle des fortifs" et que les fortifs sont supérieur à 1 (donc superieur à pallissade) il ne s'affiche rien.... J'ai vraiment hesité à te le mettre comme çà pour te laisser chercher , mais comme j'était pas sur de repasser demain, je me suis dit qu'il vallait mieux mettre le reponse Donc tant que j'y suis: Code PHP :
Donc une simple erreur de logique, je te conseille dans ces cas là de faire comme je viens de faire en en enlevant le code superflue... Ca peut aider à y voir plus clair Sinon met des echos un peu partout histoire de voir ou çà passe et ou çà passe pas Indenter mieux ton code car tu l'aurais peut être vue tout de suite si le code était indenté. Utiliser des fonctions (par exemple compare_troupe() ) de façon à éclairer ton code (en plus comme çà tu pourras faire des modifs intéressantes par la suite... Et le conseil ultime quand on ne trouve désespérément pas un bug: faire une pause (enfin moi il m'est arrivé parfois de chercher des bugs pendant 3h et de faire une pause de 5 minute pour revenir et trouver la source du problème du premier coup... (solution alternative faire ce que tu viens de faire et demander ici ) RE: Probleme "OR" dans condition: - TeKRunneR - 20-07-2007 Ah oui en effet j'étais passé à côté de ça. En passant zneman, dans ce genre de situation ou tu dois traiter plusieurs cas (fortif meilleures que palissades et attaquant moins fort, fortif moins bonnes et attaquant moins fort, etc.), je te conseille de tous les écrire sur une feuille ou dans un .txt, et de les rayer au fur et à mesure que tu les traites. Ça coute pas grand chose et ça t'aurait peut-être permis de ne pas faire cet oubli. |