Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jeu du pendu en python

    14 mai 2014 à 21:40:43

    from random import randrange
    
    from tkinter import*
    
    fen=Tk()
    
    fen.title('pendu')
    
    Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
    
    Mondessin.pack()
    
    majuscules = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
    fic=open("Dico_Pendu.txt","r")
    
    mots=fic.readlines()
    
    dessins = [
    
     
    
    ( Je pensais qu'ici devrait se trouver mon programme tkinter )
    
     
    
    max_erreurs = len(dessins) - 1
    
     
    
    def lire_lettre(propositions):
    
     
    
        """
    
         Demande une lettre à l'utilisateur en s'assurant qu'elle n'a pas déjà
    
         été proposée, puis ajoute cette lettre à la liste des lettres déjà
    
         proposées.
    
     
    
         >>> liste=['A', 'B', 'C']
    
         >>> lire_lettre(liste)
    
         Entrez une proposition de lettre : a
    
         Une seule lettre en majuscule, s'il vous plaît.
    
         Entrez une proposition de lettre : A
    
         Cette lettre a déjà été proposée.
    
         Entrez une proposition de lettre : Abc
    
         Une seule lettre en majuscule, s'il vous plaît.
    
         Entrez une proposition de lettre : E
    
         'E'
    
         >>> print(liste)
    
         ['A', 'B', 'C', 'D']     
    
        """
    
        
    
     
    
        while True:
    
            lettre = input("Entrez une proposition de lettre : ")
    
     
    
            if lettre in propositions:
    
                print("Cette lettre a déjà été proposée.")
    
            elif lettre not in majuscules or len(lettre) != 1:
    
                print("Une seule lettre en majuscule, s'il vous plaît.")
    
            else:
    
                break;
    
     
    
        propositions.append(lettre)
    
        return lettre
    
     
    
    def mot_avec_tirets(mot, propositions):
    
        
    
        """
    
         Renvoie un mot dont les lettres inconnues sont remplacées par des tirets
    
         
    
         >>> mot_avec_tirets('tirets', ['t', 'i'])
    
         'ti--t-'
    
        """
    
        m = ''
    
        for lettre in mot:
    
            if lettre in propositions:
    
                m = m + lettre
    
            else:
    
                m = m + '-'
    
        return m
    
     
    
    def partie():
    
     
    
        """
    
         Joue une partie de pendu
    
         retourne True si gagné, False si perdu
    
        """
    
     
    
        erreurs = 0
    
        mot = mots[randrange(len(mots))].rstrip("\n\r")
    
        propositions = []
    
     
    
     
    
        
    
        print(dessins[erreurs])
    
     
    
        while True:
    
            print("Lettres déjà proposées :", propositions)
    
            print("Réponse courante :", mot_avec_tirets(mot, propositions))
    
     
    
            lettre = lire_lettre(propositions)
    
     
    
            if lettre in mot:
    
                if mot_avec_tirets(mot, propositions) == mot:
    
                    print("Bravo, vous avez gagné. Le mot était :", mot)
    
                    print("Nombre d'erreurs:", erreurs)
    
                    return True
    
            else:
    
                erreurs = erreurs + 1
    
                print(dessins[erreurs])
    
                if erreurs >= max_erreurs:
    
                    print("vous êtes pendu, le mot était :", mot)
    
                    return False
    
     
    
    print("bonjour, merci de jouer à notre pendu en python")
    
     
    
    parties = 0
    
    victoires = 0
    
     
    
     
    
    while True:
    
        parties = parties + 1
    
        if partie():
    
            victoires = victoires + 1
    
     
    
        while True:
    
            cont = input("c pour continuer, a pour arrêter : ")
    
            if cont == 'c' or cont == 'a':
    
                break;
    
     
    
        if cont == 'a':
    
            break;
    
     
    
    print("Vous avez joué", parties, "partie(s)")
    
    print("Vous en avez gagné", victoires)
    
    print("Au revoir et merci")
    
     
    
    Mon programme Tkinter :
    
     
    
    from tkinter import*
    
    fen=Tk()
    
     
    
    fen.title('pendu')
    
    Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
    
    Mondessin.pack()
    
    Mondessin.create_line(50,470,150,470,fill='black',width=5)
    
    Mondessin.create_line(100,470,100,50,fill='black',width=5)
    
    Mondessin.create_line(50,50,350,50,fill='black',width=5)
    
    Mondessin.create_line(100,100,150,50,fill='black',width=5)
    
    Mondessin.create_line(300,50,300,100,fill='black',width=5)
    
    Mondessin.create_oval(275,100,325,150,fill='pink',width=5)
    
    Mondessin.create_line(300,150,300,300,fill='pink',width=5)
    
    Mondessin.create_line(250,200,350,200,fill='pink',width=5)
    
    Mondessin.create_line(300,300,250,350,fill='pink',width=5)
    
    Mondessin.create_line(300,300,350,350,fill='pink',width=5)
    
    Bq=Button(fen,text="quitter", command=fen.destroy).pack()
    
    fen.mainloop()
    


    Bonsoir,

    J'ai programmé un jeu en python, du moins j'ai essayé mais voilà, j'ai un problème. Mon jeu en lui même est bien programmé et fonctionne, j'ai crée un pendu avec Tkinter mais je ne trouve pas comment faire pour qu'à chaque fois qu'il y ai une mauvaise lettre donnée, une partir du pendu s'affiche, ainsi de suite..

    Je vous montre le programme

    Jeu :

    Voilà donc j'aimerais faire la relation entre les deux mais je n'y arrive pas donc si quelqu'un pourrait m'aider ce serait sympa, c'est pour la spécialité ISN au bac.

    Merci d'avance

    Bonne soirée

    Lucien

    -
    Edité par lucienfreyheit 15 mai 2014 à 11:58:27

    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2014 à 9:01:43

      Utilise la balise code s'il te plait ^^ Sa nous rendra que plus efficace pour t'aider !
      • Partager sur Facebook
      • Partager sur Twitter
        15 mai 2014 à 10:23:17

        Voilà, merci d'avance pour votre aide

        -
        Edité par lucienfreyheit 15 mai 2014 à 10:25:28

        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2014 à 10:24:19

          from random import randrange
          from tkinter import*
          
          majuscules = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
          fic=open("Dico_Pendu.txt","r")
          mots=fic.readlines()
          Mondessins =[
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Mondessin.create_line(100,100,150,50,fill='black',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Mondessin.create_line(100,100,150,50,fill='black',width=5)
          Mondessin.create_line(300,50,300,100,fill='black',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Mondessin.create_line(100,100,150,50,fill='black',width=5)
          Mondessin.create_line(300,50,300,100,fill='black',width=5)
          Mondessin.create_oval(275,100,325,150,fill='pink',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Mondessin.create_line(100,100,150,50,fill='black',width=5)
          Mondessin.create_line(300,50,300,100,fill='black',width=5)
          Mondessin.create_oval(275,100,325,150,fill='pink',width=5)
          Mondessin.create_line(300,150,300,300,fill='pink',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Mondessin.create_line(100,100,150,50,fill='black',width=5)
          Mondessin.create_line(300,50,300,100,fill='black',width=5)
          Mondessin.create_oval(275,100,325,150,fill='pink',width=5)
          Mondessin.create_line(300,150,300,300,fill='pink',width=5)
          Mondessin.create_line(250,200,350,200,fill='pink',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop(),
          
          fen=Tk()
          fen.title('pendu')
          Mondessin=Canvas(fen,width=500,height=500,bg='white',bd=3)
          Mondessin.pack()
          Mondessin.create_line(50,470,150,470,fill='black',width=5)
          Mondessin.create_line(100,470,100,50,fill='black',width=5)
          Mondessin.create_line(50,50,350,50,fill='black',width=5)
          Mondessin.create_line(100,100,150,50,fill='black',width=5)
          Mondessin.create_line(300,50,300,100,fill='black',width=5)
          Mondessin.create_oval(275,100,325,150,fill='pink',width=5)
          Mondessin.create_line(300,150,300,300,fill='pink',width=5)
          Mondessin.create_line(250,200,350,200,fill='pink',width=5)
          Mondessin.create_line(300,300,250,350,fill='pink',width=5)
          Mondessin.create_line(300,300,350,350,fill='pink',width=5)
          Bq=Button(fen,text="quitter", command=fen.destroy).pack()
          fen.mainloop()]
          
          max_erreurs = len(Mondessins) - 1
          
          def lire_lettre(propositions):
          
              """
               Demande une lettre à l'utilisateur en s'assurant qu'elle n'a pas déjà
               été proposée, puis ajoute cette lettre à la liste des lettres déjà
               proposées.
          
               >>> liste=['A', 'B', 'C']
               >>> lire_lettre(liste)
               Entrez une proposition de lettre : a
               Une seule lettre en majuscule, s'il vous plaît.
               Entrez une proposition de lettre : A
               Cette lettre a déjà été proposée.
               Entrez une proposition de lettre : Abc
               Une seule lettre en majuscule, s'il vous plaît.
               Entrez une proposition de lettre : E
               'E'
               >>> print(liste)
               ['A', 'B', 'C', 'D']     
              """
              
          
              while True:
                  lettre = input("Entrez une proposition de lettre : ")
          
                  if lettre in propositions:
                      print("Cette lettre a déjà été proposée.")
                  elif lettre not in majuscules or len(lettre) != 1:
                      print("Une seule lettre en majuscule, s'il vous plaît.")
                  else:
                      break;
          
              propositions.append(lettre)
              return lettre
          
          def mot_avec_tirets(mot, propositions):
              
              """
               Renvoie un mot dont les lettres inconnues sont remplacées par des tirets
               
               >>> mot_avec_tirets('tirets', ['t', 'i'])
               'ti--t-'
              """
              m = ''
              for lettre in mot:
                  if lettre in propositions:
                      m = m + lettre
                  else:
                      m = m + '-'
              return m
          
          def partie():
          
              """
               Joue une partie de pendu
               retourne True si gagné, False si perdu
              """
           
              erreurs = 0
              mot = mots[randrange(len(mots))].rstrip("\n\r")
              propositions = []
          
          
              
              print(Mondessins[erreurs])
          
              while True:
                  print("Lettres déjà proposées :", propositions)
                  print("Réponse courante :", mot_avec_tirets(mot, propositions))
          
                  lettre = lire_lettre(propositions)
          
                  if lettre in mot:
                      if mot_avec_tirets(mot, propositions) == mot:
                          print("Bravo, vous avez gagné. Le mot était :", mot)
                          print("Nombre d'erreurs:", erreurs)
                          return True
                  else:
                      erreurs = erreurs + 1
                      print(dessins[erreurs])
                      if erreurs >= max_erreurs:
                          print("vous êtes pendu, le mot était :", mot)
                          return False
          
          print("bonjour, merci de jouer à notre pendu en python")
          
          parties = 0
          victoires = 0
          
          
          while True:
              parties = parties + 1
              if partie():
                  victoires = victoires + 1
          
              while True:
                  cont = input("c pour continuer, a pour arrêter : ")
                  if cont == 'c' or cont == 'a':
                      break;
          
              if cont == 'a':
                  break;
          
          print("Vous avez joué", parties, "partie(s)")
          print("Vous en avez gagné", victoires)
          print("Au revoir et merci")
          • Partager sur Facebook
          • Partager sur Twitter
            15 mai 2014 à 11:42:54

            Edit ton premier post, et pour le deuxième marque : EDIT : suppression du code.

            C'est pas facile de lire une page remplie de ligne de code. Il faut avoir le code une fois, tout en haut , dans les balises.

            Merci !

            Ensuite : est ce que tu as sais faire cela dans un affichage terminale ?

            Avant de faire un interface graphique ton jeu doit marcher à 100% en terminale. C'est lorsqu'il est fini que tu passes en interface graphique. Pas avant.

            • Partager sur Facebook
            • Partager sur Twitter
            Python, simple et puissant !
              15 mai 2014 à 11:57:44

              Mon jeu marche oui mais si vous regardez dans la fonction dessin, j'avais fait un pendu avec des pointillés et cela marchait. Seulement maintenant, mon problème est que j'aimerais intégrer à cela le pendu en tkinter que j'ai réalisé. Seulement je n'y arrive pas..
              • Partager sur Facebook
              • Partager sur Twitter

              Jeu du pendu en python

              × 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