IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Liste à deux dimensions


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Liste à deux dimensions
    Bonjour à tous ! Je suis nouveau sur ce forum et novice dans le monde de la programmation.
    Je suis actuellement en train de réaliser un pacman 2d avec python et pygame et j'ai quelque soucis techniques.. Je pense qu'il y a quelque chose que je n'ai pas bien cerné sur les listes/tuples. Donc merci de m'éclairer !

    Ma map en 2d est écrite dans un fichier texte, sous la forme:
    1111111111111
    1222222222221
    1212111112121
    ....
    1 = Mur
    2 = Pièce
    0 = pièce mangée ou vide de base
    On ne peut se déplacer que sur des 0 et des 2 (Illogique je sais, mais je l'ai codé comme ça me venait)

    Bref, dans mon programme, je lis ce fichier texte grâce à la fonction open et je rentre ces valeurs dans une liste définit comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    map = 19*[0] 
    for i in range(len(map)):	
    	map[i] = 19*[0]
    grâce à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    def lecture_carte(map):
    	i = 0
    	j = 0
     
    	fichier = open("carte.txt", "r")
    	for ligne in fichier:
    		ligne = ligne.rstrip('\n')
    		j=0
    		for lettre in ligne:		
    			valeur = int(lettre)
    			map[i][j] = valeur
    			j=j+1
    		i=i+1	
    	fichier.close()
    Je pense qu'il y a mieux pour le remplir, mais là n'est pas la question.
    J'arrive enfin au problème.
    Dans la boucle de jeu, quand mon pacman mange une pièce (un 2 donc), j'incrémente un compteur de points, et j'aimerais transformer le 2 en 0, seulement là ça coince.
    Quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if map[i][j] == 2:
         map[i][j] = 0
    Ça ne change absolument absolument rien dans ma liste !
    Donc voilà mon soucis.. Si je passe plusieurs foi au même endroit, mon compteur s'incrémente plusieurs fois car la case est toujours à 2.

    J'espère que mon message est assez clair et que quelqu'un pourra m'éclairé..

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 484
    Points : 9 286
    Points
    9 286
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le dernier code fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    x = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 2, 0, 0]]
    for i in range(3):
        for j in range(4):
            if x[2][1] == 2:
                x[2][1] = 0
     
    print x
    [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
    Mais 'map' est une fonction de Python: il ne faut pas utiliser ce nom comme variable.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    It works !
    Je pense que j'ai fais une erreur de syntaxe.
    Merci du conseil !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste à deux dimensions
    Par mailbox dans le forum Général Java
    Réponses: 5
    Dernier message: 26/04/2012, 15h09
  2. List<List<Object>> Tableaux à deux dimensions
    Par jroman dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/06/2011, 18h37
  3. Réponses: 13
    Dernier message: 13/10/2005, 17h03
  4. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 22h38
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo