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 :

>>> print(structure)
[['0', '0', '0', '0'], ['0', '0', '0', '0'], ['0', '1', '0', '1'], ['0', '1', '1', '1']]
alors que je voudrais :

[[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 :

0000
0000
0101
0111
(je simplifie évidemment la map pour la clarté de l'exposé)

Voici le bout de code incriminé :

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
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
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]
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).

Bien à tous,
JB