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

Python Discussion :

Utilisation de liste d'indéfinies [Python 3.X]


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut Utilisation de liste d'indéfinies
    Bonjour,

    Voici mon premier post sur le forum j'ai hâte d'en voir le résultat !

    J'ai commencé à faire un petit programme avec des classes (un petit jeu qui ressemble sur les grandes lignes à Civization) et je voudrais que mes 'cases' soit aléatoirement créées soit de type Champs soit de type Plaine.

    J'ai donc commencé à faire un test avec seulement la classe Champs mais j'ai un problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    listecase = [_1A,_1B,_1C,_1D,_1E,_1F]
    for n in range(len(listecase)):
            listecase[n]=Champs(n)
    La liste listecase contient des indéfinies et ça ne plait pas à python qui adore me renvoyer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    listecase = [_1A,_1B,_1C,_1D,_1E,_1F]
    NameError: name '_1A' is not defined
    Je voulais donc savoir si l'on pouvait créer des listes qui ne contiennent pas d'objet définies et qui seront définies plus tard (dans mon cas deux lignes après) ?

    Merci d'avance pour vos réponse !
      0  0

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par GuillaumeBnt Voir le message
    Je voulais donc savoir si l'on pouvait créer des listes qui ne contiennent pas d'objet définies et qui seront définies plus tard (dans mon cas deux lignes après) ?
    Vous pouvez fabriquer une liste d'une longueur donnée en la remplissant d'un objet existant comme None ou 0 que vous remplacez pus tard.
    Vous pouvez aussi démarrer une liste vide et l'étendre en y ajoutant des éléments au fur et à mesure.

    Pour les détails, regardez la table des matières du Swinnen et allez jeter un œil (sinon plus) sur les chapitres qui parlent de listes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      1  0

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Salut,

    Merci beaucoup pour l'astuce c'est exactement ce qu'il me fallait !
      0  0

  4. #4
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Sinon est-il possible de créer un boucle d'instanciation de classe ?

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Eleve:
        def __init__(self):
            print("Youpi un nw élève !")
     
    liste_eleves = ['Jhon','Jean','Jaccob']
     
    \\boucle d'intanciation\\
      0  0

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par GuillaumeBnt Voir le message
    Sinon est-il possible de créer un boucle d'instanciation de classe ?
    Oui, c'est possible.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      0  0

  6. #6
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Oui, c'est possible.
    Y a-t-il de la documentation dessus ?
      0  0

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par GuillaumeBnt Voir le message
    Y a-t-il de la documentation dessus ?
    Faire une boucle où à chaque itération on crée un objet pour l'ajouter à une liste est une opération de base qu'on sait faire après avoir pris le temps de potasser un tuto. pour apprendre ces bases.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      0  0

  8. #8
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Là je parle de créer à partir d'une liste de 'noms' des entités en les attribuant à une classe :
    Le problème que j'ai c'est que quand je le fait à partir d'une liste il y a un égal qui occupe deux possibilités d'interprétation :

    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
    16
    17
    class Eleve:
        def __init__(self,num):
            print("Youpi un nw élève !")
            self.num = num
     
        def prt(self):
            print(self.num)
     
    liste_eleves = ['Jhon','Jean','Jaccob']
     
    i=1
    for name in liste_eleves:
        name = Eleve(i) #Ce = pose problème
        i+=1
     
    Jhon.prt() #Cela ne marche pas
    'Jhon'.prt() #Cela ne marche pas non plus
    C'est cela mon problème
      0  0

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par GuillaumeBnt Voir le message
    C'est cela mon problème
    Je ne vois pas trop ce que vous cherchez à faire!
    Dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for name in liste_eleves:
        name = Eleve(i) #Ce = pose problème
    '=' assigne à la variable name l'instance Eleve(i).
    Si vous avez appris un peu à faire des boucles vous devriez savoir qu'on ne modifie pas l'indice qui sert à réaliser chaque itération.

    Puis vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Jhon.prt() #Cela ne marche pas
    Sûr que çà ne marche pas! Pour que la variable Jhon existe, il eu fallu lui assigner quelque chose avant or "name" n'est pas "Jhon".

    En montrer que vous ne savez pas ce qu'est une variable Python ou faire une boucle, désolé, mais vous êtes supposé avoir un minimum appris à programmer avant de poster.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      0  0

  10. #10
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Mais soyons clair je n'ai pas fait ça c'est évident !

    Seulement je ne sais pas comment faire autrement, ma question est courte mais complexe pour moi. Je ne sais juste pas comment assigner Jhon à Eleve(i) puis Jean puis Jaccob.

    Ma question est de savoir si cela est possible avec une boucle ou si je suis obligé de faire une ligne pour chaque nom
      0  0

  11. #11
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si vous avez appris un peu à faire des boucles vous devriez savoir qu'on ne modifie pas l'indice qui sert à réaliser chaque itération.
    C'est pour cela que je parlais "qu'il y a un égal qui occupe deux possibilités d'interprétation"
      0  0

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par GuillaumeBnt Voir le message
    Seulement je ne sais pas comment faire autrement, ma question est courte mais complexe pour moi. Je ne sais juste pas comment assigner Jhon à Eleve(i) puis Jean puis Jaccob.
    "je ne sais pas comment faire autrement" suppose implicitement que ce que vous avez fait fonctionne mais que vous souhaiteriez le réaliser de façon plus orthodoxe. Ce qui n'est pas le cas.

    Tout l'intérêt d'un tuto. est de vous apprendre à utiliser les structures et les constructions de bases justement pour arriver à traduire vos idées en code. SI vous n'avez pas appris, vous ne savez pas faire: logique!

    Et acquérir un minimum de vocabulaire technique qui va vous permettre de mieux exprimer ce que vous voulez faire.
    Par exemple: "comment assigner Jhon à Eleve(i)", c'est littéralement n'importe quoi, On assigne un objet à une variable ou à l'attribut d'une instance (ce que retourne Eleve(i)).

    Si vous ne maîtrisez pas ce minimum de vocabulaire, pas facile d'échanger dans un forum de discussion (c'est entre autre pour çà qu'on impose avoir un peu appris à programmer avant de poster!).

    Citation Envoyé par GuillaumeBnt Voir le message
    Ma question est de savoir si cela est possible avec une boucle ou si je suis obligé de faire une ligne pour chaque nom
    Pour associer une chaine de caractères à un objet, Python fournit une structure de base appelée dictionnaire qui pourrait faire l'affaire (ouvrez votre tuto. favori, regardez dans quels chapitres çà en parle, jouez avec et imaginez comment vous allez pouvoir utiliser çà pour faire votre truc).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      0  0

  13. #13
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,
    Citation Envoyé par GuillaumeBnt Voir le message
    Seulement je ne sais pas comment faire autrement, ma question est courte mais complexe pour moi. Je ne sais juste pas comment assigner Jhon à Eleve(i) puis Jean puis Jaccob.

    Ma question est de savoir si cela est possible avec une boucle ou si je suis obligé de faire une ligne pour chaque nom
    Si tu veux pouvoir faire un truc comme ça : Jhon.prt() alors oui je pense qu'il faudra une affectation comme ça : Jhon = Eleve(i) et ce pour chaque nom... Là on ne peut pas utiliser une boucle* comme tu l'as fait :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    liste_eleves = ['Jhon','Jean','Jaccob']
     
    i=1
    for name in liste_eleves:
        name = Eleve(i) #Ce = pose problème
        i+=1

    Ici au début du premier tour de boucle la variable name contient bien la chaine 'Jhon' et ensuite on a ceci : name = Eleve(i) mais cela n'est pas équivalent à 'Jhon'= Eleve(i) comme tu as l'air de le croire... En effet dans cette instruction : name = Eleve(i) name est une variable et tu affectes à cette variable une instance de la classe Eleve (donc son contenu change elle ne contient plus la chaine 'Jhon')...

    De toute façon ceci 'Jhon'= Eleve(i) provoque une erreur car 'Jhon' est une chaine de caractère et non un nom de variable comme dans Jhon = Eleve(i)...

    ---> Pour s'approcher de ce que tu veux je pense aussi (comme l'a mentionné wiztricks) qu'il serait judicieux d'utiliser un dictionnaire*...


    -----------------
    * Ceci dit si tu tiens à faire ce que tu voulais faire avec ta boucle et ta liste de noms cela est possible mais en utilisant compile et eval ligne 14 :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class Eleve:
        def __init__(self, num):
            print("Youpi un nw élève !")
            self.num = num
     
        def prt(self):
            print(self.num)
     
     
    liste_eleves = ['Jhon', 'Jean', 'Jaccob']
    i = 1
    for name in liste_eleves:
        code = name + " = Eleve(i)"
        eval(compile(code, '<string>', 'exec'))
        i += 1
     
    Jhon.prt()  # Cela marche cette fois...
    Jean.prt()  # Cela marche aussi
    Jaccob.prt()  # Cela marche aussi...

    Avec ce code les trois instructions : Jhon.prt(), Jean.prt() et Jaccob.prt() fonctionnent...

    Mais en JavaScript eval est déconseillé il est possible qu'il en soit de même en python...
      0  0

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par Beginner. Voir le message
    Mais en JavaScript eval est déconseillé il est possible qu'il en soit de même en python...
    C'est déconseillé pour les débutants qui l'utilisent par ignorance de constructions/structures de données plus appropriées.
    => quel intérêt de leur montrer comment faire sauf à se faire mousser pour dire "t'as vu comme je suis balaise".

    Maintenant eval et exec sont des fonctions qui existent et qui peuvent être utilisées à partir du moment où on peut le justifier (ce que le débutant ignorant ne saura pas faire) et le faire de façon "safe" (ce qui doit être vérifiable).
    note: et si c'est juste pour créer une variable globale "à la volée", on n'en a pas besoin.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      0  0

  15. #15
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Si vous cherchez à associé des prénoms à vos instances d'élèves alors il y a 2 possibilités :

    1) Mettre le prénom de l'élève en attribut de classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Eleve:
        def __init__(self, nom):
            print("Youpi un nw élève !")
            self.nom = nom
     
    prenoms = [ "John", "Joe"]
    eleves = [ Eleve(prenom) for prenom in prenoms ]
    2) Stocker vos élèves dans un dictionnaires plutôt que dans une liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Eleve:
        def __init__(self):
            print("Youpi un nw élève !")
     
    prenoms = [ "John", "Joe"]
    eleves = { prenom : Eleve() for prenom in prenoms }
      0  0

  16. #16
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Pour associer une chaine de caractères à un objet, Python fournit une structure de base appelée dictionnaire qui pourrait faire l'affaire
    Comme vous me l'avez proposés je suis allé trifouiller dans les fonctionnalités des dictionnaires et je penses avoir trouvé une alternative intéressante. Merci donc à vous tous pour me l'avoir conseillé, je suis aussi allé voir comment marchait eval et compile mais comme wiztricks souligne qu'il est préférable qu'un débutant ne s'y colle pas, je vais rester sur les dictionnaires qui sont déjà une bonne source d'inspiration

    En tout cas merci à vous je reviens vers vous s'y j'ai encore des problèmes, mais cela me semble fonctionnel
      0  0

  17. #17
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Vous devriez aussi vous poser la question sur l’intérêt d'avoir une classe juste pour y stocker la position du prénom dans liste_eleves. Information qui est déjà intrinsèque a ce qu'est une liste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels
      0  0

  18. #18
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vous devriez aussi vous poser la question sur l’intérêt d'avoir une classe juste pour y stocker la position du prénom dans liste_eleves. Information qui est déjà intrinsèque a ce qu'est une liste.
    La classe Eleve() était un exemple voici mes deux Classes ainsi que certaines fonctions qui collaborent avec elles :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    # ----------------- Espace Plaine ------------------ #    
     
    def modifplaine(ref):
     
        global fenbis
        fenbis = Tk()
        fenbis.geometry("200x100")
        Bou1 = Button(fenbis, text = 'Créer une caserne', command = lambda : modif_plaine(ref,2))
        Bou1.pack()
        Bou2 = Button(fenbis, text = 'Créer un moulin', command = lambda : modif_plaine(ref,3))
        Bou2.pack()
     
     
     
    def modif_plaine(ref, refim):
     
        listebutton[ref].config(image = listeimageplaine[refim-1])
        fenbis.destroy()
     
     
    def testpains(qt,ref,nb):
        global Nombre_de_ble, var_soldat
        if Nombre_de_ble >= qt:
            ref.nw()
            Nombre_de_ble -= qt
            var_ble.set('Quantité de blés : ' + str(Nombre_de_ble))
     
        else :
            print('Blés insufisants')
     
    def Nouveau_Soldat(ref,nb):
        global var_soldat
        fenbis = Tk()
        fenbis.geometry("200x100")
     
        var_soldat = StringVar(fenbis, 'Nombre de soldats : ' + str(nb))
        Aff_soldat = Label(fenbis, textvariable = var_soldat)
        Aff_soldat.grid()
     
        NwSoldat = Button(fenbis, text = " Créer un nouveau Soldat (-5 blés) ", command = lambda : testpains(5,ref,nb))
        NwSoldat.grid()
        fenbis.mainloop()
     
    class Plaine():
     
        def __init__(self, num):
            self.num = num
            self.lvl = 1
            self.soldats = 1
     
     
        def central(self, SITUATION):
            if SITUATION == 0 :
                Nouveau_Soldat(self,self.soldats)
            if SITUATION == 1 :
                self.upgrade()
     
        def nw(self):
            self.soldats += 1
            var_soldat.set('Nombre de soldats : ' + str(self.soldats))
     
        def upgrade(self):    
            if self.lvl == 1:
                modifplaine(self.num)
                self.lvl += 1
            else:
                print('Max')
     
     
        def bou(self):
            listebutton[self.num].config(image = imageplaine)
     
     
    # -------------------------------------------------- #
     
    # ----------------- Espace champs ------------------ #
     
     
    def modifchamp(ref, lvl):
     
        listebutton[ref].config(image = listeimagechamp[lvl-1])
     
    def recolte(ref, ble):
     
        fenbis = Tk()
        fenbis.geometry("200x100")
        Texte = '\n'+'Vous avez ' + str(ble) + ' blés à recolter'+'\n'
        Affichage = Label(fenbis, text = Texte)
        Affichage.pack()
        if ref.mure == True :
            Recolter = Button(fenbis, text = 'Récolter', command = lambda : ajout_ble(ref, ref.ble) and fenbis.destroy())
            Recolter.pack()
     
     
    def murissage(ref, refnum):
        ref.mure = True
        ref.ble += 10
        listebutton[refnum].config(image = imagechampbis)
     
     
    class Champs():
     
        def __init__(self, num):
            self.num = num
            print(self.num)
            self.lvl = 1
            self.ble = IntVar()
            self.ble = 0
            self.mure = False
            fen.after(5000, lambda : murissage(self,self.num))
     
     
        def central(self, SITUATION):
            if SITUATION == 0 :
                recolte(self, self.ble)
            if SITUATION == 1 :
                self.upgrade()
     
     
        def upgrade(self):    
            if self.lvl < 3:
                self.lvl += 1
                print(self.lvl)
                modifchamp(self.num, self.lvl)
            else:
                print('Max')
     
     
        def bou(self):
            listebutton[self.num].config(image = imagechamp)
     
     
        def reset(self):
            self.ble = 0
            self.mure = False
     
    # -------------------------------------------------- #
    Évidemment, il n'y a pas le code en entier
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Tag à utiliser pour liste
    Par chouchou93 dans le forum Struts 1
    Réponses: 12
    Dernier message: 29/08/2006, 15h55
  2. Utilisation des liste liées (ajax) avec du perl
    Par Jim_Nastiq dans le forum Web
    Réponses: 1
    Dernier message: 12/07/2006, 12h07
  3. Réponses: 13
    Dernier message: 10/03/2006, 01h13
  4. Utilisation des liste à choix multiples
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/07/2005, 11h40
  5. Réponses: 16
    Dernier message: 07/04/2005, 11h36

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