from tkinter import * from random import choice fen = Tk() fen.title("JEU DU PENDU") scores=0 #FONCTION POUR PENDU def lettre_dans_mot(lettre_dite) : global partie_en_cours, mot_a_afficher1, mot_a_trouver, essais, Score, scores if partie_en_cours : mot_a_afficher2 = "" lettre_dans_mot = 0 nb_lettres=len(mot_a_trouver) for i in range(nb_lettres): if mot_a_trouver[i]==lettre_dite: mot_a_afficher2 += lettre_dite lettre_dans_mot = 1 else: mot_a_afficher2 += mot_a_afficher1[i] mot_a_afficher1 = mot_a_afficher2 afficher_mot(mot_a_afficher1) if not lettre_dans_mot: #si la lettre choisi est fausse essais= essais+ 1 #le nombre d'essais va augmenter et s'accumuler pendusuite = "pendu_"+str(essais)+".png" #pendu commence à se former img=PhotoImage(file=pendusuite) pendu.config(image=img) pendu.image=img if essais == 10: #si on atteint le nombre max d'essais partie_en_cours = 0#partie en cours terminée afficher_mot(mot_a_trouver) #le mot va s'afficher elif mot_a_afficher1 == mot_a_trouver:# le mot a été trouvé partie_en_cours = 0 penduGG = "smiley.png" img=PhotoImage(file=penduGG) pendu.config(image=img) pendu.image=img scores+=1 can.delete(Score) Score=can.create_text(110, 70, text=scores, fill="#06128B", font='courier 15') def afficher_mot(mot): global Labelmot_fen mot_espace = "" for i in range(len(mot)): # ajoute un espace entre les lettres mot_espace = mot_espace + mot[i] + " " can.delete(Labelmot_fen) Labelmot= Label(fen,text=mot_espace, height=1,bg="#B1B5E2",font='Courrier 20' ) Labelmot_fen=can.create_window(250, 300, window=Labelmot) def choisir_mot(): global mot_a_trouver, mot_a_afficher1,essais, partie_en_cours essais=0 partie_en_cours=1 ListeMot=[] fichier=open("liste.txt","r") for ligne in fichier: ligne=ligne.rstrip() ListeMot.append(ligne) mot_a_trouver=choice(ListeMot) mot_a_afficher1="_"*len(mot_a_trouver) print(mot_a_trouver) afficher_mot(mot_a_afficher1) img=PhotoImage(file="pendu_0.png") pendu.config(image=img) pendu.image=img # PRINCIPAL can = Canvas(fen, bg="#B1B5E2", height=500, width=500) can.pack() #au début Labelmot= Label(fen,text="", height=1,bg="#B1B5E2",font='Courrier 17' ) Labelmot_fen=can.create_window(250, 300, window=Labelmot) can.create_text(50,70, text="Score:",fill="#06128B", font='courier 15') Score=can.create_text(110, 70, text="0",fill="#06128B", font='courier 15') img=PhotoImage(file="pendu_0.png") pendu=Label(can, image=img) pendu.place(x=100, y=100) #Boutons A à Z k=80 boutonA = [0]*9 for i in range(9): boutonA[i] = Button(fen,text=chr(i+65),command=lambda x=i+65:lettre_dans_mot(chr(x))) can.create_window(k,370,window=boutonA[i]) k=k+40 k=80 boutonJ = [0]*9 for i in range(9): boutonJ[i] = Button(fen,text=chr(i+74),command=lambda x=i+74:lettre_dans_mot(chr(x))) can.create_window(k,410,window=boutonJ[i]) k=k+40 k=80 boutonS=[0]*8 for i in range(8): boutonS[i] = Button(fen,text=chr(i+83),command=lambda x=i+83:lettre_dans_mot(chr(x))) can.create_window(k,450,window=boutonS[i]) k=k+40 bouton_rejouer = Button(fen,text='REJOUER',command=choisir_mot) bouton_rejouer_fen=can.create_window(450,40, window=bouton_rejouer) choisir_mot()