Le jeu du Boggle est un jeu de lettres. Le but est de trouver un maximum de mots dans une grille de lettres de dimensions 4×4. Les mots doivent être formés en suivant les règles suivantes :
- les lettres doivent être adjacentes ;
- les lettres ne peuvent pas être utilisées plusieurs fois ;
- les mots doivent être composés d'au moins trois lettres.
Mot valide :
Mot invalide :
Un mot rapporte un nombre de points différents selon sa longueur :
- 3 ou 4 lettres : 1 point ;
- 5 lettres : 2 points ;
- 6 lettres : 3 points ;
- 7 lettres : 5 points ;
- 8 lettres ou plus : 11 points.
Cahier des charges
Vous devez réaliser une version du jeu du Boggle en Python. Votre programme doit afficher une grille de lettres choisies aléatoirement et demander à l'utilisateur de saisir des mots.
Quand l'utilisateur saisit un mot, le programme vérifie s'il est valide (c'est à dire s'il est présent dans le dictionnaire) et ajoute les points correspondants au score. Dans un premier temps, il n'est pas nécessaire de vérifier si le mot est bien présent dans la grille.
Pour pouvoir vérifier si un mot est valide, vous devez utiliser un dictionnaire de mots que vous pouvez charger dans un tableau au lancement de votre programme. Vous pouvez utiliser le fichier mots.txt fourni. Quelques remarques concernant ce fichier :
- il contient des verbes conjugués ainsi que des pluriels ;
- il ne contient que des caractères sans majuscules, sans accents et sans cédilles ;
- il contient aussi des mots contenant un tiret (considérés comme un seul mot). Ces mots ne doivent pas être gardés (vous pouvez par exemple ne pas les ajouter dans le tableau à la lecture du fichier).
Aucun exemple d'affichage n'est donné dans ce projet car un de vos objectifs est de concevoir une interface adaptée.
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 :
- Ajouter une limite de temps de trois minutes pour trouver un maximum de mots. Il est impossible d'afficher le compte à rebours dans la console, mais vous pouvez par exemple faire en sorte que le temps restant s'affiche à chaque fois que l'utilisateur saisit un mot (même s'il est vide). Dans tous les cas, un mot ne doit être accepté que s'il a été saisi avant la fin du temps imparti. Une fois le temps écoulé, le programme doit afficher le score final.
-
(***)
Vérifier si le mot saisi par l'utilisateur est bien présent dans la grille. À vous de trouver une méthode pour réaliser cette vérification. -
(***)
Faire en sorte que les lettres soient tirés aléatoirement en respectant les possibilités du jeu réel qui utilise des dés à six faces. Chaque dé doit alors avoir une face choisie aléatoirement et une position choisie aléatoirement. Vous pouvez par exemple utiliser la liste des dés de la version internationale du jeu :- E, T, U, K, N, O ;
- E, V, G, T, I, N ;
- D, E, C, A, M, P ;
- I, E, L, R, U, W ;
- E, H, I, F, S, E ;
- R, E, C, A, L, S ;
- E, N, T, D, O, S ;
- O, F, X, R, I, A ;
- N, A, V, E, D, Z ;
- E, I, O, A, T, A ;
- G, L, E, N, Y, U ;
- B, M, A, Q, J, O ;
- T, L, I, B, R, A ;
- S, P, U, L, T, E ;
- A, I, M, S, O, R ;
- E, N, H, R, I, S.