Je crée un jeu similaire à Tetris, avec deux différences principales: l'écran commence déjà rempli de tuiles (comme dans Puzzle Quest pour Nintendo DS et PC) et chaque tuile individuelle a une lettre. L'objectif du joueur est d'éliminer les tuiles en formant avec eux des mots valides. Les mots sont formés en plaçant les lettres côte à côte, dans n'importe quelle direction, sauf en diagonale.
Le joueur peut déplacer une rangée entière de tuiles vers la gauche ou vers la droite ou une colonne entière de tuiles vers le haut ou vers le bas, pour autant d'espaces qu'il le souhaite (si le mouvement d'une rangée / colonne dépasse les limites du plateau, le lettre qui franchit la limite "cycle", apparaissant à l'autre bout de la ligne / colonne). Après l'action du joueur, le jeu doit vérifier l'ensemble du tableau pour rechercher des mots valides et supprimer les lettres qui forment ces mots du tableau. Les lettres au-dessus de celles qui ont été supprimées tomberont à la place de celles qui ont été supprimées et les nouvelles lettres tomberont du haut de l'écran jusqu'à ce que le tableau soit à nouveau rempli.
J'ai déjà écrit un algorithme linéaire qui, étant donné une séquence de caractères, détermine s'il s'agit d'un mot anglais valide. Le problème que je rencontre est le suivant: comment puis-je rechercher des mots valides au tableau? La force brute est-elle le seul moyen? Tester toutes les combinaisons possibles à partir de la carte pour voir si elles sont valides est très lent, même pour une petite carte (5x5). Toute aide sera très appréciée, merci!