append ( letter) #l'ajoute à la liste des lettres devinées hasLetter = True #indique que la réponse est bonne else: #si elle n'est pas dans le mot: newguess.
Les grandes lignes Pour pouvoir jouer au jeu du pendu, nous avons besoin d'avoir une liste de mots prédéfinie dans laquelle, un mot au hasard, va être choisi. Le mot, qui aura été sélectionné, apparaitra sous forme de tirets (le nombre de tirets correspondant au nombre de lettres dans le mot). Une fois le mot apparu sous la forme de tirets, il faut que lorsqu'une lettre est découverte par le joueur, elle prenne la place du tiret auquel elle correspond ( complete_mot). Le jeu du pendu en Python – Les Bricodeurs. Pour cela, le mot va être transformé en une liste et pourra donc être parcouru par le programme. Mais tout d'abord il faut vérifier que la lettre se trouve bien dans le mot ( verification). temp = list(myst) # Transforme le mot en une liste temp temp[i] = lettre # Remplace le tiret underscore par la lettre myst = ""(temp) # Re-combine les éléments de temp pour en faire à nouveau un mot return myst # Renvoi le mot caché, complété avec la (ou les) lettre(s) Dans ce jeu, nous avons fait le choix de représenter un bonhomme pendu, comme dans le jeu classique d'école.
Ensuite, le programme nous demande de choisir une lettre (désolé pour la faute d'orthographe « lettre_choisi »), et si la lettre est dans le mot, alors le programme continue. Programme python jeu pendu et. Voila la principale difficulté du programme:L'affichage du mot En effet, il faut afficher le mot avec toutes les lettres qu'on a trouvées. Tout d'abord, on repére la position de la lettre trouvée avec « position=int((lettre_choisi)) », puis on insère la lettre choisie dans la liste « barre » (_ _ _ _ _ _ _) a la bonne position. On supprime aussi une (_) pour que le mot reste a la bonne longueur avec « (position) ». Enfin, on transforme la liste en chaîne de caractère pour que l'affichage soit plus clair, pour finir dans la variable « résultat » Avant de continuer, je voudrai vous montrer ce qui se passe si on met une lettre qu'on a déjà mise: C'est exactement comme auparavant, sauf que grandeur ne diminue pas, et qu'il n'y a pas besoin d'afficher une lettre de plus, car elle a déjà été affichée Trouver toutes ces formules m'ont causé BEAUCOUP de problèmes, donc j'espère que ce sera clair pour vous.
111s user 0m10. 148s sys 0m0. 008s $ time shuf /usr/share/dict/french -n 1 real 0m0. 030s user 0m0. 024s sys 0m0. 004s Aherm. Gros détail. J'ai tendance à imaginer l'ordi du futur à 10Mhz quand j'écris un programme, et j'imagine ton jeu du pendu prendre un jour à s'initialiser Dernière modification par otyugh (20-05-2018 15:43:38) #4 20-05-2018 19:17:13 hello, le code commenté: import random #importe le module random wordList = [ 'LOGIS', 'PIZZA', 'RONDE', 'ROUGE', 'TARTE'] #liste de mots possible word = random. choice ( wordList) #crée une variable baptisée guess pour stoker le mot le temps de la partie ## partie dédièe au dessin du pendu import turtle #importe le module turtle turtle. pensize ( 5) # definit la taille des traits while ( ( guess! = word) and ( errors < 10)): #continue jusqu'à ce que toutes les lettres soient trouvées. Le jeu du pendu en Python – nsi.xyz. print ( 'Voici le mot à deviner ', guess) #Affiche les lettres trouvées au fur et à mesure. letter = input ( 'Devine une lettre') #demande au joueur de proposer une lettre hasLetter = False #part du principe qu'elle n'est pas dans le mot newguess = [] #établit une liste pour afficher les lettres devinées for n in range ( 5): #recommence une boucle pour chaque nouvelle lettre if ( letter == word [ n]): #si la lettre proposée est bien dans le mot: newguess.
=len ( ch): return ch Itération en python Il faut savoir qu'en python il est très rare de faire: liste_courses = [ 'soda', 'tomates', 'bananes'] 1 2 for i in range ( len ( liste_courses)): print liste_courses [ i] On va direcetment à l'essentiel en itérant sur la liste. 1 2 for elem in liste_courses: print elem Donc sur cette fonction, qui sert à rempalcer les lettres d'un mot par un autre charactère, il suffit de pas grand chose: mot_cache = '' ( [ '-' for lettre in mot_claire]) Explication. [ '-' for lettre in mot_claire] Cette partie fait un tableau avec autant de tiret qu'il y à de lettre dans la variable mot_claire (là ou le mot à trouver se trouve) Cette partie transforme le tableau en chaîne de caractère. Programme python jeu pendu sur. Continuons: 1 2 3 4 5 6 7 8 def Test_Lettre ( saisie, mot): i= 0 length=len ( mot) li= [] if mot [ i] ==saisie: ( i) return li Ici on veux retourner un tableau avec les indices des lettres qu'on a éventuellement trouvé: On peux utiliser avantageusement la fonction enumerate de python.
Sinon, si la lettre choisie n'est pas dans le mot, alors: print("Raté") if grandeur==longueur: print(longueur*"_ ") print (resultat) vie=vie-1 print("Il te reste", vie, "vies") Sur cette partie, si le joueur se trompe des la première lettre, le programme ne peut pas afficher la variable « résultat », car elle n'existe pas encore. Le programme affiche donc seulement le mot sous forme de barre (_). Dans tout les cas, une vie est retirée. La fin du jeu if vie==0: print("Tu as perdu") elif grandeur==0: print("Bravo! Tu as trouvé le mot! ") score=score+5 print("Tu a gagné 5 points! ") replay=int(input("Tape 1 pour rejouer, et sur 2 si tu veux quitter le jeu ")) if replay! = 1: break print(prénom, "vous avez un score de ", score) Evidemment, si vos vies tombent à 0, vous perdez. Si vous gagnez, vous gagnez 5 points. A 50 points vous avez une surprise…. Vous pouvez rejouer en tapant 1, et vous quittez le programme en tapant 2 Voila, j'espère vous avoir aidés a comprendre ce petit programme! Programme Pendu Python-Tkinter [Résolu]. N'hésitez pas a le personnaliser, avec vos propres fonctions, ou avec quelques easters eggs sympathiques!