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

Tkinter Python Discussion :

Création d'un labyrinthe par une liste dans tkinter (personnage se déplaçant)


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    encore rien
    Inscrit en
    Décembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Maroc

    Informations professionnelles :
    Activité : encore rien

    Informations forums :
    Inscription : Décembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Création d'un labyrinthe par une liste dans tkinter (personnage se déplaçant)
    Bonjour.
    Je suis un étudiant de 1ère qui est le troisième mois sur python. Pour projet de fin d'année, je planifie un labyrinthe/donjon sur python et avant de découvrir tkinter, j'ai réussi à le faire qu'en refaisant print à chaque fois. Ici est mon ancien programme:
    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
     
    def max_min(n):
        if n>32:
            n=33
        elif n<0:
            n=0
        return n
     
    def print_all(Screen,y,x):
        for e1 in range(max_min(y-3),max_min(y+4)):
            for e2 in range(max_min(x-3),max_min(x+4)):
                a=Screen[e1]
                element=a[e2]
                if element!=1:
                    print('  ' if element==0 else "♗", end='')
                else:
                    print('█', end='█')
            print()
     
    def print_full(Screen):
        for e1 in Screen:
            for e2 in e1:
                if e2!=1:
                    print('  ' if e2==0 else "♗", end='')
                else:
                    print('█', end='█')
            print()
     
     
    S0=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    S1=[1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S2=[1,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S3=[1,0,1,0,1,0,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S4=[1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S5=[1,0,1,0,1,0,0,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S6=[1,0,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S7=[1,0,1,0,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S8=[1,0,1,0,1,1,0,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S9=[1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S10=[1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S11=[1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1]
    S12=[1,1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1]
    S13=[1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S14=[0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S15=[0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    S16=[1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S17=[1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S18=[1,1,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S19=[1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    S20=[1,1,1,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S21=[1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S22=[1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S23=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S24=[1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S25=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S26=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S27=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S28=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S29=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S30=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S31=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S32=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    Screen=[S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32]
    char5="♗"
    char1="▇▇"
    char2="▓▓"
    x=16
    y=16
    stop_program=0
    print_all(Screen,y,x)
    print("z pour monter, q pour aller à gauche, d pour aller à droite, s pour aller en bas et a pour arrêter")
     
    while stop_program==0:
        movement=str(input("Entrez la commande de mouvement : "))
        if movement=="a":
            stop_program=1
        elif movement=="z":
            t=Screen[y-1]
            if t[x]==0:
                t=Screen[y]
                t[x]=0
                y=y-1
                t=Screen[y]
                t[x]=5
            print_all(Screen,y,x)
        elif movement=="s":
            t=Screen[y+1]
            if t[x]==0:
                t=Screen[y]
                t[x]=0
                y=y+1
                t=Screen[y]
                t[x]=5
            print_all(Screen,y,x)
        elif movement=="q":
            t=Screen[y]
            if t[x-1]==0:
                t[x]=0
                x=x-1
                t=Screen[y]
                t[x]=5
            print_all(Screen,y,x)
        elif movement=="d":
            t=Screen[y]
            if t[x+1]==0:
                t[x]=0
                x=x+1
                t=Screen[y]
                t[x]=5
            print_all(Screen,y,x)
    Il peut paraître long, mais c'est mon niveau actuel.

    En découvrant tkinter, j'ai créé un second programme sensé marcher mais je ne sais pas ce qui cloche, c'est ma première semaine avec tkinter

    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
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    def max_min(n):
        if n>32:
            n=33
        elif n<0:
            n=0
        return n
     
    def print_all(Screen,y,x):
        for e1 in range(max_min(y-3),max_min(y+4)):
            for e2 in range(max_min(x-3),max_min(x+4)):
                a=Screen[e1]
                element=a[e2]
                if element!=1:
                    print('  ' if element==0 else "♗", end='')
                else:
                    print('█', end='█')
            print()
     
    def print_full(Screen):
        for e1 in Screen:
            for e2 in e1:
                if e2!=1:
                    print('  ' if e2==0 else "♗", end='')
                else:
                    print('█', end='█')
            print()
     
    def valid():
        global x
        x = validation.get()
        print(validation.get())
     
    def modification():
        if label["text"]:
            label["text"] = ""
        else:
            label["text"] = print_all(Screen,y,x)
     
    def z(x,y,Screen):
        t=Screen[y-1]
        if t[x]==0:
            t=Screen[y]
            t[x]=0
            y=y-1
            t=Screen[y]
            t[x]=5
     
    def s(x,y,Screen):
        t=Screen[y-1]
        if t[x]==0:
            t=Screen[y]
            t[x]=0
            y=y+1
            t=Screen[y]
            t[x]=5
     
    def q(x,y,Screen):
        t=Screen[y-1]
        if t[x]==0:
            t=Screen[y]
            t[x]=0
            x=x-1
            t=Screen[y]
            t[x]=5
     
    def d(x,y,Screen):
        t=Screen[y-1]
        if t[x]==0:
            t=Screen[y]
            t[x]=0
            x=x+1
            t=Screen[y]
            t[x]=5
     
    S0=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    S1=[1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S2=[1,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S3=[1,0,1,0,1,0,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S4=[1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S5=[1,0,1,0,1,0,0,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S6=[1,0,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S7=[1,0,1,0,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S8=[1,0,1,0,1,1,0,1,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S9=[1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S10=[1,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S11=[1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1]
    S12=[1,1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1]
    S13=[1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S14=[0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S15=[0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    S16=[1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S17=[1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S18=[1,1,1,1,1,1,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S19=[1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    S20=[1,1,1,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S21=[1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S22=[1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S23=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S24=[1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S25=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S26=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S27=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S28=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S29=[1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
    S30=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1]
    S31=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
    S32=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    Screen=[S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32]
    char5="♗"
    char1="▇▇"
    char2="▓▓"
    x=16
    y=16
     
    e0 = Tk()
     
    Label(
     
        e0,
        text="Bienvenue dans ce jeu. Vous devrez cocher cette case pour commencer.",
     
    ).pack(side=TOP, padx=20, pady=10)
     
    validation=IntVar()
     
    validé = Checkbutton(e0,
                         text="Je commence!",
                         variable=validation,
                         command=valid and e0.destroy,
    ).pack(side=LEFT, padx=20, pady=10)
     
    e1 = Tk()
     
    label = Label(e1, text="Gamepad")
    label.pack()
    Bouton1 = Button(e1, text ='haut', command = z(x,y,Screen) and print(print_all(Screen,y,x)))
    Bouton1.pack(side = TOP, padx = 5, pady = 5)
    Bouton2 = Button(e1, text ='droite', command = d(x,y,Screen) and print(print_all(Screen,y,x)))
    Bouton2.pack(side = RIGHT, padx = 5, pady = 5)
    Bouton3 = Button(e1, text ='gauche', command = q(x,y,Screen) and print(print_all(Screen,y,x)))
    Bouton3.pack(side = LEFT, padx = 5, pady = 5)
    Bouton4 = Button(e1, text ='bas', command = s(x,y,Screen) and print(print_all(Screen,y,x)))
    Bouton4.pack(side = BOTTOM, padx = 5, pady = 5)
     
    e1.mainloop()
    Je ne comprends pas quelle est l'erreur, et voici pourquoi je lance un appel à l'aide.
    La photographie viendra dans un commentaire de ce sue je veux que ça donne, et ça devrait s'actualiser sur le même "label"

    Merci de votre attention.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    encore rien
    Inscrit en
    Décembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Maroc

    Informations professionnelles :
    Activité : encore rien

    Informations forums :
    Inscription : Décembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Photographie de l'attendu
    Ici est l'attendu, frame per frame, de comment doit être le label à chaque rafraîchissement correspondant à un appui sur la touche bas, puis gauche à la fin
    Images attachées Images attachées  

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Vous devez utiliser un outil de travail qui vous aide à trouver et à corriger les problèmes. Je travaille sous W10 et j'utilise Visual Studio Code.

    label["text"] = print_all().

    validé = Checkbutton().

    Deux erreurs : "Assigning result of a function call, where the function has no return"

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 239
    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 239
    Points : 36 692
    Points
    36 692
    Par défaut
    Salut,

    Si vous écrivez command=valid and e0.destroy, vous êtes supposé avoir testé que çà allait bien faire ce que vous en attendiez avant... D'autant que c'est pas si compliqué de lancer l'interpréteur Python pour définir deux fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> def f(): print('f')
    ...
    >>> def g(): print('g')
    ...
    puis comme command= attend une fonction, fabriquer:
    et voir ce que çà déroule quand elle est appelée:
    Pour conclure qu'écrire command=valid and e0.destroy revient à écrire command=e0.destroy...

    Citation Envoyé par Warbrain Voir le message
    Je ne comprends pas quelle est l'erreur, et voici pourquoi je lance un appel à l'aide.
    il faut déjà que vous compreniez que programmer, c'est ordonner à la machine d'exécuter des instructions simples. Tant que la machine peut les exécuter, elle le fera sans réfléchir ni essayer de comprendre.

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    encore rien
    Inscrit en
    Décembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Maroc

    Informations professionnelles :
    Activité : encore rien

    Informations forums :
    Inscription : Décembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Réponse à wiztricks
    Cette commande "inutile" est en faîte une fondation pour un futur module. En disant que j'étais depuis 3 mois sur python, je n'ai pas dit que j'étais inexpérimenté en programmation ^^'

    (Pour info ce que je fais est hors programme, et j'ai cherché des réponses, je n'en ai pas trouvé)

    La fonction "valid" devrait permettre d'activer une autre fenêtre, plus tard, hors maintenant j'essaye de juste faire fonctionner e1.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 239
    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 239
    Points : 36 692
    Points
    36 692
    Par défaut
    Salut,

    Citation Envoyé par Warbrain Voir le message
    La fonction "valid" devrait permettre d'activer une autre fenêtre, plus tard, hors maintenant j'essaye de juste faire fonctionner e1.
    Et bien plutôt que de poster 150 lignes de code pas finies, concentrez vous sur le bout que vous voulez essayer de faire fonctionner: çà ne devrait pas dépasser une vingtaine de lignes qui vous permettraient de montrer ce que vous cherchez à faire (pas le jeu mais l'interaction avec l'utilisateur) et le problème que vous rencontrez.

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

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    encore rien
    Inscrit en
    Décembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Maroc

    Informations professionnelles :
    Activité : encore rien

    Informations forums :
    Inscription : Décembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Localisation du problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def modification():
        if label["text"]:
            label["text"] = ""
        else:
            label["text"] = print_all(Screen,y,x)
    Grâce à cette fonction, théoriquement, je devais imprimer le labyrinthe dans "label" dans l'écran e1, et ce labyrinthe devrait s'actualiser à chaque action de l'utilisateur. Mais "label" reste inchangé, et je ne comprends pas où est l'erreur

    Le code en entier est envoyé si quelqu'un veut essayer le programme.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 239
    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 239
    Points : 36 692
    Points
    36 692
    Par défaut
    Citation Envoyé par Warbrain Voir le message
    Grâce à cette fonction, théoriquement, je devais imprimer le labyrinthe dans "label" dans l'écran e1, et ce labyrinthe devrait s'actualiser à chaque action de l'utilisateur. Mais "label" reste inchangé, et je ne comprends pas où est l'erreur

    Si vous écrivez: label["text"] = print_all(Screen,y,x) "label" affichera ce que retourne la fonction "print_all". Ce qu'une fonction "retourne" n'a rien à voir avec ce qu'elle affiche sur la console/terminal!
    Pour autant que le code de votre fonction n'ai pas changé, il ne contient même pas le mot clef return.

    Donc pratiquement, votre code fonctionne mais n'affiche rien parce que "print_all" ne retourne rien (ou plus précisément None).

    Techniquement, label["text"] = print_all(Screen,y,x) ne fait rien de plus que a = input('>>> '): appel de la fonction et assignation du résultat à la variable a.
    Sûr que c'est un peu plus touffu, mais si vous n'êtes pas confiant sur le fait que çà ne fait rien de plus que cette chose simple là, c'est que vous voulez faire des choses compliquées avant d'avoir assimilé les bases...

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

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    encore rien
    Inscrit en
    Décembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Maroc

    Informations professionnelles :
    Activité : encore rien

    Informations forums :
    Inscription : Décembre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Réponse à wiztricks
    Merci beaucoup, je ne le savais pas. Oui je rush un peu, mais je suis serré par le temps. j'ai peu de temps avant d'avoir une version "alpha" prête.
    Avez vous des solutions pour le problème ? Je remplace print par return? (ça na pas marché j'ai essayé)

    - Donc que faire?

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 239
    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 239
    Points : 36 692
    Points
    36 692
    Par défaut
    Citation Envoyé par Warbrain Voir le message
    Avez vous des solutions pour le problème ? Je remplace print par return? (ça na pas marché j'ai essayé)
    Vous voulez programmer avec tkinter et aucune idée de comment çà fonctionne ni avec quels widgets vous allez bien pouvoir afficher votre labyrinthe.

    La seule solution serait de prendre le temps d'apprendre.

    Et si vous n'avez pas ce temps là, c'est un problème certes mais comme pas grand réfléchira quoi coder et comment à votre place, à vous de le résoudre.

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

Discussions similaires

  1. [1.x] Création d'une liste dans une fiche d'édition
    Par Gtn8501 dans le forum Débuter
    Réponses: 4
    Dernier message: 10/04/2012, 16h03
  2. Réponses: 2
    Dernier message: 21/07/2010, 13h30
  3. création d'une liste dans une barre d'outils
    Par ririrourou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/09/2008, 16h39
  4. Réponses: 3
    Dernier message: 10/05/2008, 13h55
  5. tri par rapport à une liste dans la clause where
    Par umbakrail dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/07/2006, 12h32

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