logo

Le jeu du pendu

Principe du jeu

Tout le monde connait le célèbre jeu du pendu...

a="tentative"
lettres=[]
def mot_a_trous(list,mot):
	a=""
	for l in mot:
		if l in list:
			a=a+l
		else:
			a=a+" _ "
	return a

print( mot_a_trous(lettres,a))

while mot_a_trous(lettres,a) != a:
	x=input("une lettre")
	if x in a:
		lettres.append(x)
	print( mot_a_trous(lettres,a))

Avec plus de mots

Pour endre le jeu plus interessant, utilisant un fichier avec les mots de la langue française : penduplusfrequence.csv.

Voici le code du jeu du pendu avec une liste de mots gérées aléatoirement :

import csv
from random import *
lesmots=[]
with open('penduplusfrequence.csv', newline='', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        lesmots.append(row['mot'])

def mot_a_trous(list,mot):
	a=mot[0]
	for l in mot[1:len(mot)-1]:
		if l in list:
			a=a+l
		else:
			a=a+"."
	a=a+mot[len(mot)-1]
	return a

def jouer():
    i=randint(0,len(lesmots)-1)
    a=lesmots[i]
    lettres=[]
    print( mot_a_trous(lettres,a))
    while mot_a_trous(lettres,a) != a:
        x=input("une lettre :")
        if x=="ab":
            print(a)
        if x in a:
            lettres.append(x)
    
        print( mot_a_trous(lettres,a))
    r=input("rejouer (o/n)")
    if r=="o":
        jouer()
jouer()

A vos codes

Dans ce code, il y a une façon de voir le mot recherché, Laquelle ?

Consulter la liste des mots, expliquer le bug que l'on risque de rencontrer, proposer une solution.

Maintenant, il faut pendre les "mauvais joueurs", modifier le code pour qu'il y ait un gagnant ou un pendu.