Pendu inscrit dans tkinter
Fermé
bancel
-
Modifié par crapoulou le 15/12/2016 à 23:02
_Ritchi_ Messages postés 21288 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 11 novembre 2024 - 16 déc. 2016 à 13:49
_Ritchi_ Messages postés 21288 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 11 novembre 2024 - 16 déc. 2016 à 13:49
A voir également:
- From tkinter import *
- Win setup from usb - Télécharger - Utilitaires
- Work from home avis - Forum Vos droits sur internet
- Item returned from customs dhgate ✓ - Forum Consommation & Internet
- Compte import le bon coin ✓ - Forum Réseaux sociaux
- No available networks no response from server iron tv pro - Forum TV & Vidéo
1 réponse
_Ritchi_
Messages postés
21288
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
11 novembre 2024
6 079
Modifié par _Ritchi_ le 16/12/2016 à 13:56
Modifié par _Ritchi_ le 16/12/2016 à 13:56
Bonjour
Voulant t'aider à réfléchir à ton souci, j'ai récupéré le code et j'ai constaté que la mise en forme est un peu olé olé et donc j'ai remis d'aplomb les indentations:
Reste maintenant ton souci de dessin du pendu dans ta fonction "tracer".
Je me suis permis d'ajouter la ligne 48 dans cette fonction afin de te mettre sur la piste de ton souci:
Bonnes Fêtes de Fin d'Année,
Ritchi
Voulant t'aider à réfléchir à ton souci, j'ai récupéré le code et j'ai constaté que la mise en forme est un peu olé olé et donc j'ai remis d'aplomb les indentations:
from random import* from tkinter import* def choisir_mot(liste): """Cette fonction renvoie le mot choisi dans la liste des mots liste_mots. On utilise la fonction du module random .""" i=randrange(len(liste)) return liste[i] def mot_etoile(a): """Fonction permettant de remplacer les lettres par des etoiles """ l=len(a) chaine="" for i in range (0,l): chaine=chaine+"*" return chaine def recup_lettre(): """Cette fonction recupere une lettre saisie par l'utilisateur. Si la chaine recuperee n'est pas une lettre, on appelle en boucle la fonction jusqu'a obtenir une lettre""" lettre = raw_input("Tapez une lettre: ") lettre = lettre.lower() if len(lettre)>1 or not lettre.isalpha(): print("Vous n'avez pas saisi une lettre valide.") return recup_lettre() else: return lettre #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 #cette definiton permet de faire les traits a la suite que si le precedent a ete fait def tracer(n): if n>=len(dessin_pendu): print ("Pendu, vous avez perdu ! Le mot était: ", mot) exit() dessin=dessin_pendu[n] print "dessin:", dessin i=0 while i < 10: if dessin[i+1] is not None : dessin[i](dessin[i+1]) else: dessin[i]() i+=2 def chaine_lettre (liste): lettres='' for i in range (0,len(liste)): lettres=lettres+'-'+liste[i] return lettres.upper() Fen=Tk() Cans1=Canvas(Fen,width=150,height=120,background='yellow') #Definition du dessin de pendu dessin_pendu = [(Cans1.create_line(50,10,50,110)), (Cans1.create_line(50,110,90,110)), (Cans1.create_line(50,10,110,10)), (Cans1.create_line(110,10,110,20)), (Cans1.create_oval(100,20,120,40)), (Cans1.create_line(110,40,110,80)), (Cans1.create_line(110,55,90,45)), (Cans1.create_line(110,55,130,45)), (Cans1.create_line(110,80,130,90)), (Cans1.create_line(110,80,90,90))] #dessin du pendu #la liste de mot: liste_mot=[ "voiture", "maison", "pierre", "portable", "casque", "ingenieur", "son"] # Notre variable pour savoir quand arreter la partie continuer_partie = 'o' #debut de la partie while continuer_partie != 'n': #Debut du jeu lettres_trouvees = [] erreur = 0 mot=choisir_mot(liste_mot) mot_trouve=remplacer_mot_etoile(mot,lettres_trouvees) #Tant qu on n a pas trouve le mot et qu on n a pas epuise sa chance while mot_trouve!=mot and erreur<9: print("Mot a trouver {}".format(mot_trouve)) #ici , on execute la fonction recup_lettre lettre = recup_lettre() if lettre in lettres_trouvees: # La lettre a deja ete choisie print("Vous avez deja choisi cette lettre.") elif lettre in mot: # La lettre est dans le mot a trouver lettres_trouvees.append(lettre) print("Bien joue.") else:#ce n'est pas la bonne lettre lettres_trouvees.append(lettre) tracer(erreur) erreur+=1 print("... non, cette lettre ne se trouve pas dans le mot...") mot_trouve=remplacer_mot_etoile(mot,lettres_trouvees) print ('lettres proposées ',chaine_lettre(lettres_trouvees)) if mot==mot_trouve: print("Félicitations! Vous avez trouvé le mot: %s" %(mot)) else: print("PENDU !!! Vous avez perdu.") # demander au joueur si il veut continuer la partie: continuer_partie = raw_input("Souhaitez-vous refaire une partie (O/N) ?") continuer_partie = continuer_partie.lower() print("bye bye")
Reste maintenant ton souci de dessin du pendu dans ta fonction "tracer".
Je me suis permis d'ajouter la ligne 48 dans cette fonction afin de te mettre sur la piste de ton souci:
print "dessin:", dessin
Bonnes Fêtes de Fin d'Année,
Ritchi