Problème étrange et casse-tête

Résolu/Fermé
LeoLeo99897 - Modifié le 29 mars 2023 à 19:30
 LeoLeo99897 - 29 mars 2023 à 19:05

Bonjour,

Je travaille actuellement sur mon amélioration du code fourni ici : 

https://api.arcade.academy/en/latest/examples/platform_tutorial/step_10.html

pour apprendre les bases du module arcade de python 3.11.

Mais je rencontre un problème très étrange.

J'ai une liste de maps créées avec Tiles Map Editor que j'enregistrent sous le nom "map1.json", "map2.json", ..., "map7.json". J'aimerais qu'au bout de la 7e map, le programme s'arrête, j'ai donc créé une variable "level" de type int() qui augmente de 1 à chaque niveau. Dans la boucle principale du jeu j'ai également rajouté les lignes suivantes :

if level == 8:
    arcade.close()
    sys.exit()

MAIS, lorsque le niveau 6 est fini (et donc que la variable level = 7), le programme se ferme comme si level == 8. J'ai essayé de changer la valeur de la condition des lignes plus haut.

Avec toutes les autres valeurs inférieures à 8, ça fonctionne : si je mets

if level == 5:
    ...

... la 5ème carte n'est pas affichée et le programme se ferme. J'ai essayé de nombreuses solutions, sans succès : des Threads, des importations d'autres .py, d'autres variables, je ne trouve rien non plus sur internet. J'ai besoin d'aide.

Merci

2 réponses

Bonsoir,

Sans voir ton code, ou au moins les parties de code incriminées, personne ne va pouvoir dire où il y a un problème dans ton code.

Est-ce bien certain que ta variable vaut 8 ? Ton code ne peut sortir autrement ailleurs ? Comment ta variable est incrémentée ?

Bref, comme tu peux comprendre sans plus d'information, impossible de dire où ton programme déconne.

0

Bonjour,

Je viens de trouver la solution : un mauvais nom de variable à un endroit. "lvl" au lieu de "level" marche moins bien puisque les deux existent dans mon code donc je me suis embrouillé...

Merci quand meme !

0