Pendu

Sound -  
 Sound -
Bonjour,
J'ai pour projet de créer un pendu en utilisant tk inter , et j arrive à créer la fenêtre , mais je n'arrive pas à afficher les lettres utilisé , à changer le mot dans la fentre et à faire le pendu avec les erreurs pouvez vous m'aider ?
voici le code que j'ai fait :

from tkinter import *
from random import *


def pendu ():
    dessin=[[can.create_line(50,10,50,110)],
    [can.create_line(15,110,90,110)],
    [can.create_line(50,10,110,10)],
    [can.create_line(110,10,110,20)],
    [can.create_oval(100,20,120,40)],
    [can.create_line(110,40,110,80)],
    [can.create_line(110,55,90,45)],
    [can.create_line(110,55,130,45)],
    [can.create_line(110,80,130,90)],
    [can.create_line(110,80,90,90)]]



def chaine (liste):
    c=''
    for i in range (0,len(liste)):
        c=c+'-'+liste[i]
    return c.upper()


#remplace le mot par des etoiles
def remplacer_mot_etoile (mot1,liste):
    mot_cache = ""
    for lettre in mot1:
        if lettre in liste :
            mot_cache += lettre
        else :
            mot_cache += "*"
    return mot_cache

def choisir_mot(liste):
    i=randrange(len(liste))
    return liste[i]


def recup_lettre(event):
    erreur=0
    global lettres_trouvees,lettre,mot_trouve
    lettre=saisir.get()
    if len(lettre)!=1 :
        text7.config(text='rentrer une SEULE lettre')
        saisir.delete(0,END)


saisir.delete(0,END)


print (lettre)


if lettre in lettres_trouvees: # La lettre a deja ete choisie
        text7.config(text='La lettre a déja été choisie')

elif lettre in mot: # La lettre est dans le mot a trouver
        lettres_trouvees.append(lettres_trouvees)
        text7.config(text='bien joué')

else:#ce n'est pas la bonne lettre
        lettres_trouvees.append(lettre)
        erreur = erreur+1
        text7.config(text='Ce n est pas une bonne lettre')
    mot_trouve=remplacer_mot_etoile(mot,lettres_trouvees)
    text2.config(text=mot_trouve)

#Ici , si on depasse 10 erreurs , alors on a perdu et le jeu est fini
    if erreur>=9:
        text7.config(text='Pendu , tu as perdu , tu es nul')
        quit()
    text6.config(text='')

if mot==mot_trouve:
        text7.config(text='Félicitation , vous avez trouvé le mot'+ mot)




global lettres_trouvees,mot,lettre


#la liste de mot:
liste_mot=[
    "voiture",
    "maison",
    "portable",
    "pierre",
    "casque",
    "ingenieur",
    "son",
    "patate",
    "anticonstitutiellement"]



lettres_trouvees=[]

mot=choisir_mot(liste_mot)
mot_trouve=remplacer_mot_etoile(mot,lettres_trouvees)


fenetre = Tk()

can=Canvas(fenetre,width=150,height=120,bg='yellow')
can.grid(column=2,columnspan=2,rowspan = 2)

saisir=StringVar()
saisir.set




text1=Label(fenetre,text='mot à chercher')
text1.grid(row=0)

text2=Label(fenetre,text=mot_trouve)
text2.grid(row=0,column=1)

text4=Label(fenetre,text='lettre' )
text4.grid(row=1)

saisir= Entry(textvariable=saisir,width=7,justify=CENTER)
saisir.bind("<Return>", recup_lettre)
saisir.grid(row=1,column=1)



text5=Label(fenetre,text='Lettre Joué :')
text5.grid(row=2,column=2)

text6=Label(fenetre,text='')
text6.grid(row=2,column=3)


text7=Label(fenetre,text='')
text7.grid(row=3,columnspan=2)

b1=Button(fenetre,text='pendu',command=pendu)
b1.grid(row=4)


menubar=Menu(fenetre)

menu1=Menu(menubar,tearoff=0)
menu1.add_command(label='Quitter',command=fenetre.destroy)
menu1.add_separator()
menubar.add_cascade(label='Option',menu=menu1)


fenetre.config(menu=menubar)
fenetre.mainloop(
)

1 réponse

  1. Sound
     
    Re bonjour , j'ai réussi à avancer , il me reste que le pendu à dessiner , et je n'y arrive pas ,

    voilà le code :
    from tkinter import *
    from random import *

    def pendu ():
    dessin=[[can.create_line(50,10,50,110)],
    [can.create_line(15,110,90,110)],
    [can.create_line(50,10,110,10)],
    [can.create_line(110,10,110,20)],
    [can.create_oval(100,20,120,40)],
    [can.create_line(110,40,110,80)],
    [can.create_line(110,55,90,45)],
    [can.create_line(110,55,130,45)],
    [can.create_line(110,80,130,90)],
    [can.create_line(110,80,90,90)]]

    def tracer(n):
    dessin = pendu[n]
    i=0
    while i < len(dessin):
    if dessin[i+1] is not None :
    dessin[i](dessin[i+1])
    else:
    dessin[i]()
    i+=2

    def chaine (liste):
    c=''
    for i in range (0,len(liste)):
    c=c+'-'+liste[i]
    return c.upper()

    #remplace le mot par des etoiles
    def remplacer_mot_etoile (mot1,liste):
    mot_cache = ""
    for lettre in mot1:
    if lettre in liste :
    mot_cache += lettre
    else :
    mot_cache += "*"
    return mot_cache

    def choisir_mot(liste):
    i=randrange(len(liste))
    return liste[i]

    def recup_lettre(event):
    erreur=0
    global lettres_trouvees,lettre,mot_trouve
    lettre=saisir.get()
    if len(lettre)!=1 :
    text7.config(text='rentrer une SEULE lettre')
    saisir.delete(0,END)
    return lettre

    saisir.delete(0,END)

    print (lettre)

    if lettre in lettres_trouvees: # La lettre a deja ete choisie
    text7.config(text='La lettre a déja été choisie')

    elif lettre in mot: # La lettre est dans le mot a trouver
    lettres_trouvees.append(lettre)
    text7.config(text='bien joué')

    else:#ce n'est pas la bonne lettre
    lettres_trouvees.append(lettre)
    tracer(erreur)
    erreur = erreur+1
    text7.config(text='Ce n est pas une bonne lettre')
    mot_trouve=remplacer_mot_etoile(mot,lettres_trouvees)
    text2.config(text=mot_trouve)

    #Ici , si on depasse 10 erreurs , alors on a perdu et le jeu est fini
    if erreur>=9:
    text7.config(text='Pendu , tu as perdu , tu es nul')
    quit()
    text6.config(text=chaine(lettres_trouvees))

    if mot==mot_trouve:
    text7.config(text='Félicitation , vous avez trouvé le mot '+ mot)

    global lettres_trouvees,mot,lettre

    #la liste de mot:
    liste_mot=[
    "voiture",
    "maison",
    "portable",
    "pierre",
    "casque",
    "ingenieur",
    "son",
    "patate",
    "anticonstitutiellement"]

    lettres_trouvees=[]

    mot=choisir_mot(liste_mot)
    mot_trouve=remplacer_mot_etoile(mot,lettres_trouvees)

    fenetre = Tk()

    can=Canvas(fenetre,width=150,height=120,bg='yellow')
    can.grid(column=2,columnspan=2,rowspan = 2)

    saisir=StringVar()
    saisir.set

    text1=Label(fenetre,text='mot à chercher')
    text1.grid(row=0)

    text2=Label(fenetre,text=mot_trouve)
    text2.grid(row=0,column=1)

    text4=Label(fenetre,text='lettre' )
    text4.grid(row=1)

    saisir= Entry(textvariable=saisir,width=7,justify=CENTER)
    saisir.bind("<Return>", recup_lettre)
    saisir.grid(row=1,column=1)

    text5=Label(fenetre,text='Lettre Joué :')
    text5.grid(row=2,column=2)

    text6=Label(fenetre,text='')
    text6.grid(row=2,column=3)

    text7=Label(fenetre,text='')
    text7.grid(row=3,columnspan=2)

    b1=Button(fenetre,text='pendu',command=pendu)
    b1.grid(row=4)

    menubar=Menu(fenetre)

    menu1=Menu(menubar,tearoff=0)
    menu1.add_command(label='Quitter',command=fenetre.destroy)
    menu1.add_separator()
    menubar.add_cascade(label='Option',menu=menu1)

    fenetre.config(menu=menubar)
    fenetre.mainloop()
    0