You are currently viewing Un programme Python pour aider à jouer à Wordle

Un programme Python pour aider à jouer à Wordle

Un programme Python pour aider à jouer à Wordle peut consister à trier les mots de cinq lettres en fonction de celles que vous avez déjà. Je vous en propose un.

python wordle

Un programme Python pour aider à jouer à Wordle: les prémices

Tout commença lorsque je visionnai la vidéo de Science Étonnante:

Comme David, je n’aime pas ce jeu, mais j’aime bien me casser la tête à écrire de petits programmes. J’ai donc voulu écrire un programme Python me suggérant des mots adéquats en fonction de celles bien placées, celles mal positionnées et celles qui, au contraire, n’étaient pas dans le mot.

Le programme

Voici donc un premier jet:

Partie réservée aux abonné·e·s de ce site.
Pour un abonnement à vie (10 €), allez dans la boutique.

Un exemple

Pour commencer, on peut demander à la fonction wordle(5,{}) de nous proposer la liste des mots de 5 lettres:

>>> wordle( 5 , {} )
['ABATS' , 'ABBES' , 'ABCES' , ... ]

On choisit “FIRME”.

Ah tien! On a 3 lettres aux bons endroits! Quelle chance ! Mais le “I” et le “M” ne sont pas dans le mot à trouver. Donc on entre:

>>> wordle( 5 , {'F':1, 'R':3, 'E':5, 'I':0, 'M':0} )
['FOREE', 'FERLE', 'FORTE', 'FARCE', 'FERUE', 'FARTE', 'FORCE', 'FERRE', 'FORGE', 'FARDE']

Le dictionnaire passé en argument comprend les lettres placées aux bons endroits (dans ce cas, la valeur associée à la clé correspond à sa position dans le mot), et les lettres qui ne doivent pas être présentes (dont la valeur est “0”).

Je propose “FARCE”:

Zut! Bon, ben j’enrichis mon dictionnaire avec deux lettre en plus qui ne doivent pas être présentes:

>>> print( wordle(5,{'F':1,'R':3, 'E':5, 'I':0, 'M':0, 'A':0, 'C':0}) )
['FORGE', 'FERUE', 'FORTE', 'FOREE', 'FERRE', 'FERLE']

Je propose alors “FORTE”:

C’est mieux! Je complète le dictionnaire avec la lettre “O” placée en position 2:

>>> print( wordle(5,{'F':1,'R':3, 'E':5, 'I':0, 'M':0, 'A':0, 'C':0, 'O':2, 'T':0}) )
['FOREE', 'FORGE']

Allez! Une chance sur deux:je propose “FORGE”:

Ringo !

Je précise que j’ai fait cette “expérience” le 14/02/2022 sur le site https://wordle.louan.me/.

Comme vous avez pu le constater, j’ai décidé d’insérer un paramètre pour le nombre de lettres du mot à deviner, bien que celui-ci soit toujours de longueur 5. Pour être honnête, n’était pas coutumier de ce jeu, je ne savais pas que la longueur du mot était constante au début, donc j’ai mis ce paramètre tout naturellement…

Bien entendu, ce code pourrait être amélioré. Par exemple, j’ai supposé que toutes les lettres étaient d’office en majuscules. On pourrait s’en assurer dans la fonction et, le cas échéant, transformer les minuscules en majuscules.

On pourrait aussi proposer en premier les mots les plus fréquents. On pourrait pour cela s’aider d’un fichier comme celui que l’on peut trouver sur la page https://eduscol.education.fr/186/liste-de-frequence-lexicale. Il y a sans doute d’autres améliorations… à voir!

Laisser un commentaire