Bonjour,
Je m'essaie à Python et Pygame en développant un petit jeu de plateforme, mais je bute sur un problème incompréhensible : lorsque j'ouvre un fichier et récupère ses données, il me place des guillemets comme suit :
alors que je voudrais :>>> print(structure)
[['0', '0', '0', '0'], ['0', '0', '0', '0'], ['0', '1', '0', '1'], ['0', '1', '1', '1']]
et alors que le contenu du fichier texte ("cartedujeu.txt") est le suivant :[[0, 0, 0, 0], [0, 0, 0, 0], [0, 1, 0, 1], [0, 1, 1, 1]]
(je simplifie évidemment la map pour la clarté de l'exposé)0000
0000
0101
0111
Voici le bout de code incriminé :
Je suis convaincu que le problème vient de ce bout de code-là, car ça marche quand je définis moi-même la liste contenant les listes (en définissant la structure sans passer par un autre fichier) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 structure = 0 with open("cartedujeu.txt", "r") as cartedujeu: structure_cartedujeu = [] for ligne in cartedujeu: ligne_map = [] for sprite in ligne: if sprite != '\n': ligne_map.append(sprite) structure_cartedujeu.append(ligne_map) structure = structure_cartedujeu
Vous y comprenez quelque chose ? Ça ne doit pas être sorcier mais je ne trouve nulle part l'explication sur internet (et je n'arrive pas à non plus à une solution bricolée en demandant de supprimer les guillemets).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 structure = [] ligne1 = [0,0,0,0] ligne2 = [0,0,0,0] ligne3 = [0,1,0,1] ligne4 = [0,1,1,1] structure = [ligne1, ligne2, ligne3, ligne4]
Bien à tous,
JB
Partager