BOSS : jeu du pendu¶
Sujet¶
Le projet final de cette partie est assez ambitieux.
Vous allez reprogrammer un jeu du pendu où vous jouez contre l'ordinateur.
Le déroulement se déroule donc ainsi :
- L'ordinateur choisit un mot français au hasard, et indique au joueur la taille du mot
- Le joueur dit une lettre à l'ordinateur
- L'ordinateur dit au joueur si la lettre se trouve ou non dans le mot
- Si c'est le cas alors ces endroits sont révélés
- Sinon, le joueur perd une vie (choisir le nombre initial de vies)
- Le jeu s'arrête quand le joueur trouve le mot ou n'a plus de vies
Essayez de faire un affichage joli de ce qu'on connaît du mot et des lettres déjà utilisées par le joueur.
Exemple d'utilisation¶
Mot choisi aléatoirement, il contient 4 lettres.
Choisissez une lettre : a
Pas de a dans le mot.
Il vous reste 9 vies.
Lettres utilisées : a
Choisissez une lettre : e
Pas de e dans le mot.
Il vous reste 8 vies.
Lettres utilisées : a e
Choisissez une lettre : i
1 i trouvés aux endroits suivants :
i___
Lettres utilisées : a e i
Choisissez une lettre : o
1 o trouvés aux endroits suivants :
i__o
Lettres utilisées : a e i o
Choisissez une lettre : r
Pas de r dans le mot.
Il vous reste 7 vies.
Lettres utilisées : a e i o r
Choisissez une lettre : t
Pas de t dans le mot.
Il vous reste 6 vies.
Lettres utilisées : a e i o r t
Choisissez une lettre : a
Lettre déjà utilisée
Choisissez une lettre : u
Pas de u dans le mot.
Il vous reste 5 vies.
Lettres utilisées : a e i o r t u
Choisissez une lettre : n
1 n trouvés aux endroits suivants :
in_o
Lettres utilisées : a e i o r t u n
Choisissez une lettre : f
1 f trouvés aux endroits suivants :
info
Lettres utilisées : a e i o r t u n f
Vous avez gagné !
Indices¶
Le plus gros challenge de ce boss est de créer une liste de mots français possibles. (On ne va pas la créer à la main)
Ainsi, les 2 indices concernent cette partie du boss. Le premier est une solution qui reste difficile à bien implémenter. Le deuxième utilise un package qui fait directement le travail à notre place.
Avant de regardez ces indices, notez que l'ordinateur n'a pas besoin de pouvoir potentiellement choisir n'importe quel mot de la langue française. Mais doit juste avoir accès à un choix suffisamment large de mots dont on est sûr à 100% qu'ils sont tous bien français.
Indice 1
Une solution "à la main" consiste à mettre plein de textes copiés collés de wikipedia ou autres sources (genre Jean de la Fontaine) dans un fichier francais.txt. Puis d'en extraire les mots d'au moins 3 lettres et qui apparaissent au moins 2 fois et de les stocker dans un autre fichier, appelé `mots.txt par exemple.
Indice 2
Avec le package wordfreq (à installer), vous pouvez utiliser la fonction top_n_list pour récupérer les n mots les plus utilisés (enlever quand même les mots comme "et" ou "à" parce que c'est rompiche)
Pour uniformiser les mots (enlever les accents tout ça tout ça), la fonction
normalizedu packageunicodepeut vous être fort utile.
Si vous ne voulez pas vous embêter avec ce problème, alors un fichier words.txt contenant un peu plus de 4000 mots français valides est disponible.
Conclusion de la partie intermédiaire¶
On en a ainsi fini avec la partie intermédiaire. Et bien qu'il vous reste encore beaucoup de choses à apprendre en Python (les classes étant le plus gros morceaux), on va en réalité s'arrêter là pour ce parcours.
Je pense qu'il est bon d'apprendre à bien se servir de ce qu'on sait faire avant d'apprendre encore de nouvelles informations et d'arriver à une certaine surcharge. Un parcours Python avancé verra sûrement le jour et vous parlera en détail des classes et d'autres choses encore.
Mais dans mon grand professionalisme, je ne vais pas vous laisser en plan, et la dernière partie va donc consister à un recueil de projets amusants. N'hésitez pas à réaliser vos propres projets à la place mais ça vous donne des idées de projets pour progresser si jamais vous en manquez.