#j'ai mis des explication un peu partout car on a pas forcement vu les interfaces en cours from pendu_Marwan_NE_PAS_OUVRIR import liste_mots import random from tkinter import * #Cela importe Tkinter qui permet de créer des interfaces graphiques etc... #Le * veut dire qu’on importe tout ce que Tkinter propose. #random c'est juste pour choisir un mot de la liste du deuxieme fichier aleatoirement mot = random.choice(liste_mots) mot1 = ["_"] * len(mot) chances = [6] fenetre = Tk() #On crée une fenêtre principale pour le jeu. #"fenetre" sera notre fenêtre où tout sera affiché. inconnu = "" for lettre in mot1: inconnu += lettre + " " texte = Label(fenetre, text=inconnu) #On crée un texte (Label) dans la fenêtre "fenetre". #Le texte affiché sera "inconnu", c’est-à-dire les "_" du mot. texte.pack() #On affiche le Label dans la fenêtre. #pack() sert à dire à Tkinter de mettre le texte quelque part dans la fenêtre. dessin = Canvas(fenetre, width=200, height=200) #On crée un canvas, un espace où on pourra dessiner. #Ici, il fait 200 pixels de large et 200 pixels de haut. dessin.pack() #On affiche dans la fenêtre. dessin.create_line(120,20,120,40) dessin.create_line(50,20,120,20) #On dessine deux lignes dans le canvas pour commencer le pendu. #Les chiffres représentent les coordonnées du bout des lignes #(exactement comme les graphiques en math x/y). saisie = Entry(fenetre, width=3) #On crée une zone de saisie pour que l’utilisateur tape une lettre. #width=3 signifie qu’on peut taper 3 caractères maximum. saisie.pack() #On affiche la zone de saisie dans la fenêtre. def valider(): #On déclare une fonction valider. #Cette fonction sera exécutée quand l’utilisateur cliquera sur le bouton “valider”. if chances[0] <= 0: texte["text"] = "Perdu !" entry.delete(0, END) #on vide la zone de saisie. lettre = saisie.get() #On prend la lettre que l’utilisateur a tapée dans la zone de saisie #on la met dans la variable lettre. if lettre in mot: for i in range(len(mot)): if mot[i] == lettre: mot1[i] = lettre else: chances[0] -= 1 v = chances[0] if v == 5: dessin.create_oval(100,40,140,80) if v == 4: dessin.create_line(120,80,120,130) if v == 3: dessin.create_line(120,90,90,110) if v == 2: dessin.create_line(120,90,150,110) if v == 1: dessin.create_line(120,130,90,160) if v == 0: dessin.create_line(120,130,150,160) #On enlève 1 chance (chances[0] -= 1) 0 c'est l'index! donc 6 au debut #Selon le nombre de chances restantes, on dessine une partie du pendu. texte["text"] = "" for i in mot1: texte["text"] += i + " " #On met à jour l’affichage du mot. #On vide le texte actuel et on le remplit avec les lettres trouvées et les "_" restantes. if "_" not in mot1: texte["text"] = "Gagné !" elif chances[0] <= 0: texte["text"] = "Perdu !" saisie.delete(0, END) #On vide la zone de saisie pour que l’utilisateur puisse taper une nouvelle lettre. bouton = Button(fenetre, text="valider", command=valider) bouton.pack() #On crée un bouton “valider” dans la fenêtre. Quand on clique, la fonction valider() est exécutée. #On affiche le bouton dans la fenêtre. fenetre.mainloop() #On lance la boucle principale de Tkinter. #Cela permet à la fenêtre de rester ouverte et d’attendre les actions de l’utilisateur.