SUTOM-Resolver est un script Python pour automatiser la recherche de solution au jeu en ligne SUTOM disponible à l'adresse suivante : https://sutom.nocle.fr Le code source du jeu est disponible ici.
1.mp4
Le script envoie un premier mot commençant par la lettre donnée par le jeu, et ne contenant que des lettres uniques (pour diminuer au maximum le nombre de possibilités). La réponse du jeu des lettres présentes à la bonne position, des lettres présentes mais à la mauvaise position et les autres (non présentes dans le mot) est analysée par le script qui recherche alors les mots correspondant à ces critères. Sur les essais accordés par le jeu, le script tentera de déterminer un unique mot au final. Le script utilise un dictionnaire des noms communs français pour cela.
Le script teste le jeu à partir des mots du dictionnaire. Le dictionnaire étant plus exhaustif que celui du jeu, certains mots ne sont pas reconnus par le jeu. Pour pallier ce problème, je script ajoute à un autre fichier dictionnaire les mots non reconnus par le jeu. Le script ne les testera que s'il n'a pas trouvé de mots disponibles parmi le dictionnaire initial. Ainsi on réduit le temps de recherche, sans pour autant se priver des mots qui pourraient éventuellement être rajoutés dans le jeu.
A la fin de l'execution, le script effectue une capture d'écran de la fenêtre du navigateur qu'il a ouvert, sous le nom screenshot.png
. Il envoie également dans la sortie standard terminal des informations sur l'execution courante.
Le script Python utilise selenium
pour le scraping et l'intéraction avec la page web. Il faut donc l'installer de la manière suivante :
pip install selenium
Enfin, il utilise au choix les drivers Chrome ou Firefox pour afficher la page web et la contrôler. On peut ainsi voir le script en action sur la page. Pour activer le driver Chrome, il convient de commenter la ligne Firefox et de décommenter celle avec le driver Chrome.
python3 resolver.py
############# VARIABLE TO MODIFY ###############
headless = True # True pour activer le mode headless, False sinon
discord = True # True pour activer la sortie sur webhook discord (spécifier l'url), False sinon
windows = False # True si vous exécutez le script en environnement Windows (sert aux path des drivers), False sinon
webhook = "add your webhook url here" # L'url de votre webhook discord
############################
Le mode discord vous permet d'avoir le résultat de l'exécution du script, directement dans un channel discord via les webhook. De l'aide est disponile pour la configuration d'un webhook ici.
Le mode headless n'affiche pas le nabigateur, mais uniquement la sortie standard. On peut alors s'éviter l'affichage inutile. On peut ainsi lancer le script sur un serveur sans GUI autre qu'un terminal.
Pour automatiser l'exécution du script, il faut activer le mode headless, et je vous recommande d'activer le mode Discord également, de sorte que vous aurez les sorties du script sur votre channel discord configuré. Une simple tâche planifiée ou cron fera l'affaire.
Cet autre script fait par PierreCH résoud également le jeu de la même manière.