Mini-projets – partie 02

Consignes générales

Pour ces mini-projets vous aurez besoin du fichier suivant :

Ce fichier répertorie plus de 22 000 mots de la langue Française.

Les mini-projets suivants sont donc des jeux utilisant des mots.

Pour pouvoir exploiter ce fichier avec votre code il faudra le mettre dans le même dossier que votre programme.

Vous aurez besoin aussi de nouvelles fonctions qui sont illustrées dans le programme ci-dessous permettant de tirer un mot aléatoire parmis la liste des mots du fichier dico.txt.

Testez ce code :

# Intégration au programme de la bibliothèque random.
from random import *

# Ouverture du fichier "dico.txt" en lecture.
dico = open("dico.txt","r")

# Création d'une liste "liste_mot" avec en élément chaque ligne du fichier "dico.txt".
liste_mots = dico.readlines()

# Génération d'un nombre aléatoire.
num_aleatoire = randint(0, len(liste_mots))

# Affichage de l'élément à l'index "num_aleatoire" de "liste_mots".
print(liste_mots[num_aleatoire])

Les commentaires permettent de décrire chaque instructions programmées. Vous en aurez besoin pour les mini-projets qui suivent.

Remarques

Sur chaque ligne du fichier texte se trouve un mot + un caractère spécial permettant de faire un retour à la ligne. Ce caractère spécial est « \n ». On peut utiliser ce caractère pour sauter une ligne dans un print.

Exemple avec l’instruction suivante :

print("Bonjour Monsieur,\nVous êtes le bienvenue ici.")

On aura alors en résultat dans la console :


Bonjour Monsieur,
Vous êtes le bienvenue ici

Après avoir exécuté le code permettant d’afficher un mot aléatoire de dico.txt, essayer dans la console la commande « liste_mots[0] » et « print(liste_mots[0]) ». Observer alors le contenu du premier mot de dico.txt et ce qu’il se passe lorsqu’on lui demande de l’afficher sur la console.

Pour enlever ce caractère pouvant être gênant il suffit d’enlever le dernier caractère de ce mot.

mot=liste_mots[num_aleatoire]
mot=mot[0:len(mot)-1]

1/ Pendu amélioré

Le but est de programmer un jeu où l’utilisateur doit retrouver un mot choisi aléatoirement par le programme parmi ceux du fichier « dico.txt ».

La 1ère lettre est affichée, l’utilisateur doit alors trouver le mot en fonction des indices donnés. Les lettres inconnues seront symbolisées par un tiret « -« .

A chaque tentative, en dessous de chaque lettre, celles bien placées sont indiquées par un rond « O », celles mal placées par une croix « X » et celles qui ne se trouvent pas dans le mot par un espace  » « .

L’utilisateur doit impérativement rentrer un mot avec le même nombre de lettre que celui à deviner. Si il rentre un mot avec un nombre de lettre différent alors il faudra qu’il rentre un nouveau mot.

Exemple à l’exécution du programme :

Mot à deviner : b--------

Essaye de deviner le mot --> batifoler

batifoler
OX   XXXX

--------------------------------------------

Mot à deviner : b--------

Essaye de deviner le mot --> boudinées

boudinées
OOOX   X

--------------------------------------------

Mot à deviner : bou------

Essaye de deviner le mot --> boulevard

boulevard
OOOOOOOOO

--------------------------------------------

Bravo, vous avez trouvé !

Extensions :

  • Au début de l’exécution du programme, l’utilisateur pourra choisir le nombre de lettre du mot à deviner. Le programme choisira alors aléatoirement un mot à deviner parmi la liste avec ce nombre de lettre.
  • Un compteur permettra à l’utilisateur de savoir en combien de tentative il a trouvé le mot à deviner.
  • Le programme ne devra pas choisir de nom propre pour le mot à deviner.

Aide :

Pour parcourir les lettres d’une chaine de caractère (ici mot) on peut utiliser :

for i in range (len(mot)):
   print(mot[i])

On pourra alors effectuer des test sur chaque lettre du mot.


Pour la première ligne à afficher vous devez créer une chaine de caractère avec la première lettre du mot à deviner suivi d’autant de tirer qu’il y a de lettre dans le mot à deviner moins la première lettre.

Pour ajouter un caractère un certain nombre de fois on peut utiliser :

test = "k"*8

2/ Anagramme

Ce programme, dans un premier temps, choisira un mot aléatoire parmi ceux du fichier « dico.txt » puis l’affichera. Le joueur devra alors rentré mot par mot des anagrammes du mot donné par le programme. A chaque tentative le mot sera validé ou non par le programme (il sera validé si il est présent dans le fichier « dico.txt »). Le programme se terminera lorsque l’utilisateur aura rentré le mot de passe « 123quitter » à la place d’un anagramme. Le programme affichera alors la solution générale avec tous les anagrammes du mot choisi aléatoirement.

Exemple à l’exécution du programme :

Mot choisi par le programme : aride

Votre proposition --> raide

Anagramme valide !

Votre proposition --> riade

Anagramme non valide !

Votre proposition --> aider

Anagramme valide !

Votre proposition --> 123quitter

Le programme s'arrête ! Voilà la liste des anagrammes pour le mot "aride" :

- adire
- aider
- draie
- radie
- raide

Extensions :

  • Au début de l’exécution du programme, l’utilisateur pourra choisir le nombre de lettre du mot choisi aléatoirement par le programme.
  • Intégration d’un système de score en fonction des anagrammes trouvés par rapport aux anagrammes possibles.
  • L’utilisateur pourra rentrer des mots avec des lettres se trouvant dans le mot choisi aléatoirement mais avec une longueur petite (le score pourra s’adapter en fonction de la longueur du mot).