Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec module sleep

    23 mai 2018 à 23:54:03

    Bonjour, je souhaite créé un jeu de mémoire. J'ai créée les cartes sous forme de bouton. 

    J'ai assigné a chaque bouton une fonction qui l'a fait se retourner:

    Si la carte de meme image est déjà retournée alors je souhaite qu'elle attente 2 sec avant que les 2 disparaissent.

    Si l'autre carte n'est pas retournée je veux qu'elle attende quelques seconde avant de se retournée à nouveau.

    Or voici mon problème, si l'autre carte n'est pas retournée, la carte attend avant de se retournée puis se retourne et se re retourne tellement rapidement que ce n'est meme pas visible. Si l'autre carte est retournée elles disparaissent directement.

    Comme si le time.sleep s'effectuait avant les autres ordres.

    Je met l'exemple de la fonction d'un bouton  

    def retourner_carte1 ():
    
        global etoile1_retournee
        etoile1_retournee=1
    
        if etoile2_retournee==1:
            time.sleep(2)
            dos6.place_forget()
            dos1.place_forget()
            global nombre_de_paires_trouvees
            nombre_de_paires_trouvees=nombre_de_paires_trouvees+1
            paires_trouvees.config(text=str(nombre_de_paires_trouvees)+" PAIRES TROUVEES")
    
        if etoile2_retournee==0:
             dos1.config(image=etoile)
             time.sleep(2)
             dos1.config(image=dos_carte)

    Merci pour vos reponses :)

    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2018 à 0:55:53

      Pas de sleep dans une interface graphique comme Tkinter.

      Pour gérer la durée d'attente, on utilise la méthode after. Regarde mon tutoriel Tkinter qui explique de A à Z comment faire un jeu memory (lien dans ma signature) et en particulier la gestion du retournement de carte.

      • Partager sur Facebook
      • Partager sur Twitter
        24 mai 2018 à 10:12:04

        Bonjour

        J'ai perdu mon mot de passe et ma boite mail ne marche pas, j'ai donc créée un nouveau compte.

        Avec after la carte attend bien 2sec mais encore avant de se retouner et ne se retourne pas, ou alors se n'est pas visible


        Comment faire pour q'after s'execute apres?

        def retourner_carte1 ():
            dos1.config(image=etoile)
            canvas1.after(2000)
            dos1.config(image=dos_carte)




        -
        Edité par Amande99 24 mai 2018 à 10:23:39

        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec module sleep

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown