Sujet de TP : Jeu du Pendu
Présentation du problème
Le jeu du pendu est un jeu de devinettes où le joueur essaie de découvrir un mot en proposant des lettres, avec un nombre limité d'erreurs possibles.
Voici un lexique pour pouvoir y jouer :
`
lexique = maison, voiture, arbre, soleil, plage, chat, chien, livre, jardin, porte, table, chaise,
ecole, ville, village, chemin, fleur, pont, ballon, fenetre, escalier, travail, famille,
ami, enfant, cadeau, fromage, pain, vin, fruit, legume, chocolat, eau, salade, pizza,
bonbon, soupe, desert, montagne, mer, foret, lac, riviere, ciel, etoile, lune, feu
Fonctions à implémenter
1. lettre_presente
Écrire une fonction lettre_presente
qui prend en paramètre un mot et une lettre et renvoie un booléen indiquant si la lettre est présente dans le mot.
Exemple d'utilisation : ```python
lettre_presente('python', 'p') True lettre_presente('python', 'z') False ```
2. ajouter_lettre
Écrire une fonction ajouter_lettre
qui prend en paramètre une chaine de caractère correspondant à celle en cours, une lettre et la solution et renvoie la chaine à compléter avec la lettre si présente.
Exemple d'utilisation : ```python
ajouter_lettre('y_', 'p', 'python') 'py' ajouter_lettre('_', 'o', 'python') '_o__' ```
3. lettre_deja_presente
Écrire une fonction lettre_deja_presente
qui prend en paramètre une chaine de caractères en cours et une lettre et renvoie un booléen indiquant si la lettre est déjà présente dans la chaine.
Exemple d'utilisation : ```python
lettre_deja_presente('py_', 'p') True lettredeja_presente('py__', 'o') False ```
4. lettre_deja_proposee
Écrire une fonction lettre_deja_proposee
qui prend en paramètre une liste de lettres proposées et une lettre et renvoie un booléen indiquant si la lettre a déjà été proposée.
Exemple d'utilisation : ```python
lettre_deja_proposee(['a', 'e'], 'a') True lettre_deja_proposee(['a', 'e'], 'p') False ```
5. pendu
Écrire une fonction pendu
qui gère le déroulement complet du jeu du pendu.
Pseudo-code de la fonction :
``` Fonction pendu(): solution = mot choisi aléatoirement en_cours = chaîne de '_' de même longueur que solution nb_essais = 8 lettres_proposees = liste vide
Tant que (nb_essais > 0 ET solution != en_cours):
Demander à l'utilisateur de saisir une lettre
Tant que (lettre déjà présente dans en_cours
OU lettre déjà proposée):
Afficher un message d'erreur
Redemander une lettre
Si (lettre est dans solution):
Mettre à jour en_cours avec la lettre
Sinon:
Afficher "La lettre n'est pas dans le mot"
Ajouter la lettre aux lettres_proposees
Décrémenter nb_essais
Afficher l'état en_cours
Si (solution == en_cours):
Afficher "Bravo, vous avez gagné !"
Sinon:
Afficher "Perdu ! Le mot était", solution
```