(Retour à la liste)

M-7. Chaîne de mots


Le but de ce projet 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 :

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

Cahier des charges

Votre programme doit, au lancement, charger le contenu du fichier mots.txt dans un tableau. Quelques remarques concernant ce fichier :

Votre programme utilise ensuite cette liste pour générer un dictionnaire associant à chaque mot un tableau de mots suivants possibles. Une fois ce dictionnaire construit, la suite devient plus facile.

Le programme demande ensuite à l'utilisateur de saisir deux mots. Il affiche alors toutes les solutions possibles pour passer d'un mot à l'autre.

Exemple d'exécution

Voici un exemple d'exécution de votre programme (le texte affiché par le programme est en bleu, tandis que le texte entré par l'utilisateur est en noir) :

Saisir deux mots :
1) mains
2) papas
5 solutions trouvées :
- mains maias mayas payas papas
- mains maias manas panas papas
- mains pains paies papes papas
- mains maias matas patas papas
- mains maias raias rapas papas

Pour aller plus loin (palier 4)

Une fois que vous avez atteint le palier 3 des fonctionnalités, voici quelques idées pour aller plus loin et atteindre le palier 4 :