Projet 19 : Chaîne de mots

Description du mini projet

Le but est d'écrire un programme qui prend en entrée deux mots et qui retourne un chemin possible permettant de passer de l'un à l'autre en utilisant une chaîne de mots issus du dictionnaire. Pour passer d'un mot à l'autre, la seule opération autorisée est la substitution d'une lettre. On peut noter que tous les mots doivent être de la même longueur, ce qui élimine déjà une bonne partie du dictionnaire.

Par exemple, pour passer de mains à papas, voici les cinq solutions possibles  :

1
Mot de départ ? mains
2
Mot d'arrivée ? papas
3
dictionnaire de  5891  mots de  5  lettres
4
nb nouveaux successeurs :  14
5
nb nouveaux successeurs :  15
6
nb nouveaux successeurs :  44
7
nb nouveaux successeurs :  102
8
Solution :  mains maias mayas payas papas
9
Solution :  mains maias manas panas papas
10
Solution :  mains pains paies papes papas
11
Solution :  mains maias matas patas papas
12
Solution :  mains maias raias rapas papas
13
profondeur :  5

Bien entendu, plus le mot de départ est long et moins la probabilité qu'il y ait de résultat est grande.

Cahier des charges

  • Vous utiliserez un  fichier des mots français qu’il faudra convertir en liste.

  • On demande les deux mots à l'utilisateur, on lit le dictionnaire et on retient seulement les mots qui ont la même longueur que les mots entrés

  • Le but est de connaître quels sont les mots auxquels on peut accéder à partir de chaque mot du dictionnaire. Par exemple, pour « cat », on doit avoir « cot, cut, fat, car, caw… », pour « dot » on doit avoir « cot, dog, lot, not… », etc.

  • Une fois qu'on aura ce dictionnaire de couples (mot parent, mots enfants), toutes les informations dont on a besoin s'y trouvent : si on veut passer de « cat » à « dog », on analysera tous les mots valides à partir de « cat », puis les mots valides à partir de chacun de ces mots et ainsi de suite.

ComplémentPalier 4 : Une fois le palier 3 franchi

  • Pour ajouter de la difficulté, vous pourrez vous demander comment trouver la chaîne la plus courte et comment trouver toutes les chaînes possibles. Je vous conseille de vous renseigner sur les graphes et les algorithmes qui permettent de répondre à ce genre de problème plus facilement.

  • Pensez également à toutes les optimisations que vous pourriez apporter à votre programme : certaines méthodes sont bien plus rapides que d'autres pour déterminer si passer de « cat » à « cot » est une opération valide, par exemple. D'ailleurs, quelle serait la méthode la plus rapide pour trouver tous les mots valides que l'on peut utiliser après un mot donné ?