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 :

Tkinter Python, Mastermind, redémarrer une fenetre à 0


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Août 2017
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 68
    Points : 56
    Points
    56
    Par défaut Tkinter Python, Mastermind, redémarrer une fenetre à 0
    Bonjour à tous,
    je commence à développer un mini mastermind (avec des nombres ).
    J'ai quelque bug, par exemple je n'arrive pas à permettre la continuité de la partie.
    Quand le joueur clique sur 'valider' je veux qu'il obtienne une réponse et qu'il puisse ensuite changer ses nombres saisies... et donc continuer la partie.

    Voici mon code :

    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
    from fcntl import DN_DELETE
    from this import d
    import tkinter as tk
    import random
    liste_ordi = [1,2,3,4,5,6,7,8,9]
    L=[]
    for i in range (4):
        L.append(random.choice(liste_ordi))
    liste_joueur = []
    VBP=0
    VMP=0
    def effacer():
    	canvas1.delete(0, tk.END)
     
    root= tk.Tk()
     
    canvas1 = tk.Canvas(root, width = 400, height = 300)
    canvas1.pack()
    button3 = tk.Button(text='Recommencer', command=effacer)
    button3.pack()
     
    def tricher ():  
        label1 = tk.Label(root, text=L )
        canvas1.create_window(100, 60, window=label1)
     
     
     
     
    while VBP!=4:
        button2 = tk.Button(text='Tricher', command=tricher)
        canvas1.create_window(100, 80, window=button2)
     
     
        entry1 = tk.Entry (root) 
        entry2 = tk.Entry (root) 
        entry3 = tk.Entry (root) 
        entry4 = tk.Entry (root) 
        canvas1.create_window(200, 100, window=entry1)
        canvas1.create_window(200, 120, window=entry2)
        canvas1.create_window(200, 140, window=entry3)
        canvas1.create_window(200, 160, window=entry4)
        liste_joueur = []
        VBP=0
        VMP=0
     
        def getSquareRoot ():  
            x1 = entry1.get()
            x2 = entry2.get()
            x3 = entry3.get()
            x4 = entry4.get()
     
            liste_joueur.append(int(x1))
            liste_joueur.append(int(x2))
            liste_joueur.append(int(x3))
            liste_joueur.append(int(x4))
            label1 = tk.Label(root, text=liste_joueur )
            label6 = tk.Label(root, text=L )
            label2 = tk.Label(root, text='Felicitation' )
            if L == liste_joueur:
                label2 = tk.Label(root, text='Felicitation' )
                canvas1.create_window(200, 250, window=label2)
     
            else:
                for i in range(len(liste_joueur)):
                    global VBP,VMP
                    if liste_joueur[i]==L[i]:
                        label3 = tk.Label(root, text="La valeur :"+ str(liste_joueur[i])+  " est bien place")
                        canvas1.create_window(200, 220, window=label3)
     
                        VBP=VBP +1
                    else:
                        VMP=VMP+ 1      
     
            label4 = tk.Label(root, text= "Nombre de valeurs bien places:"+str(VBP))
            label5 = tk.Label(root, text="Nombre de valeurs mal places:"+str(VMP) )
     
            canvas1.create_window(200, 290, window=label1)
            canvas1.create_window(200, 250, window=label4)
            canvas1.create_window(200, 270, window=label5)
     
     
        button1 = tk.Button(text='Valider', command=getSquareRoot)
        canvas1.create_window(200, 180, window=button1)
        button2 = tk.Button(text='Continuer', command=getSquareRoot)
        canvas1.create_window(200, 180, window=button1)
     
        root.mainloop()
    merci d'avance

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

    Pour détruire les objets d'un Canvas, c'est canvas.delete('all') et non canvas.delete(0, 'end').

    Pour le reste, les widgets occupent de l'espace mémoire donc on ne crée pas de widgets par dessus des widgets existants mais on les remet à zéro ou on les détruit avant.

    Vous avez intérêt à commencer avec des cas de figures plus simples. Par exemple un Label, une Entry, un Button "valider" qui ira lire l'Entry pour mettre à jour le Label et un Button "Recommencer" qui ira remettre à zéro l'Entry....

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

Discussions similaires

  1. [Python 2.X] Python 2.7 Tkinter : Un timer qui ferme une fenetre
    Par Lacroix Marius dans le forum Tkinter
    Réponses: 7
    Dernier message: 16/05/2018, 15h26
  2. [python 3.6] tkinter : je voudrais avoir une fenetre avec une image de fond
    Par H2R file comme l'aire dans le forum Tkinter
    Réponses: 6
    Dernier message: 12/05/2017, 20h38
  3. Réponses: 2
    Dernier message: 17/05/2006, 14h26
  4. [Tkinter] image dans une fenetre
    Par THE_VIP dans le forum Tkinter
    Réponses: 3
    Dernier message: 13/05/2006, 08h38
  5. [Tkinter] Démarrer une fenetre en plein écran
    Par Kyti dans le forum Tkinter
    Réponses: 1
    Dernier message: 20/04/2005, 18h42

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