§ Posté le 08/09/2014 à 23h 44m 35
Je vous avais déjà présenté un bot IRC il y a quelques temps, mais celui-ci servait essentiellement à interagir avec d'autres bots, dont la plupart ne donnent plus trop signe de vie ces derniers temps (quota_atypique, quand est-ce que tu répares le tien ? )
Nettoyons donc, j'ai peut-être un poil plus intéressant (et autonome) à proposer. Ce bot-ci est avant tout une proof of concept, codé très rapidement et qui pourrait probablement être amélioré sur pas mal de points.
Son rôle est de permettre de jouer, seul ou à plusieurs, à divers petits jeux potentiellement adaptés à IRC. Le code est disponible ici, et est déployé, si vous voulez le tester, sur ##tdct-jeux
, sur freenode.
Actuellement, deux jeux sont mis en place : un MasterMind, et un pendu. D'autres suivront peut-être (les suggestions sont ouvertes ).
On lance une partie en tapant !nom_du_jeu
(donc « !mastermind »
ou « !pendu
»), avec éventuellement des arguments pour paramétrer le lancement. Le bot affiche ensuite un numéro de partie, et quelques précisions sur ce qu'il faut trouver exactement.
Ensuite, pour jouer, préfixez vos messages de !numero
(« !1
» pour la première partie, par exemple), afin que le bot sache où donner de la tête. Rien n'empêche effectivement de lancer autant de parties simultanées que vous le désirerez.
Le numéro utilisé pour la nouvelle partie correspond à celui le plus élevé parmi les parties en cours, plus un : il est donc nécessaire d'avoir terminé toutes les parties en cours pour revenir à un.
Notez que nesthib a mis au point un algo de résolution pour l'un des deux jeux. À terme, il pourrait déployer un autre bot susceptible d'interagir avec le mien : le challenge sera alors de trouver la solution plus vite que son bot à lui
Note importante : la bibliothèque python utilisée semble avoir quelques difficultés avec les lettres accentuées si celles-ci sont dans un encodage autre que l'UTF-8. Vérifiez donc vos réglages, histoire d'éviter de faire planter le bot.
Le MasterMind
Il s'agit de ce jeu classique où un joueur (ici, systématiquement le bot) détermine une combinaison de couleurs, et où les autres joueurs doivent, par propositions successives, parvenir à la solution.
Les couleurs étant un peu plus délicates à manipuler sur IRC, elles sont ici remplacées par des lettres. Par défaut, il faut donc trouver quatre lettres entre A et F (incluses), mais vous pouvez également préciser d'autres configurations (par exemple, « !mastermind 8 2
» pour avoir huit lettres à trouver ne pouvant être que soit A, soit B).
Vous pouvez, indifféremment, mettre ou ne pas mettre d'espaces entre les lettres de votre proposition, mais vous devez indiquer précisément le nombre de lettres à trouver. Majuscules et miniscules n'ont aucune importance ici.
Il n'y a (pour l'instant ?) pas de limite au nombre de tentatives que l'on peut effectuer, et la partie ne se termine donc que lorsque la solution est trouvée.
Le pendu
Un mot est tiré aléatoirement (en utilisant le dictionnaire par défaut du système, situé dans /usr/share/dict/french
, lequel contient notamment plein de mots accordés et de verbes conjugués), et vous devez retrouver ses lettres.
Pas d'image de pendu qui s'affiche (l'ASCII-art sur plusieurs lignes, c'est généralement assez lourd), mais un compteur de tentatives, vous autorisant 11 lettres erronnées, et pas plus.
Vous pouvez proposer soit une lettre à la fois, soit un mot complet, à condition bien sûr que ce dernier soit exactement de la même taille que celui à trouver. Actuellement, proposer un mot qui n'est pas le bon n'est pas comptabilisé dans la liste des erreurs.
Là encore, utiliser des majuscules ou des minuscules n'a pas d'importance ; les accents n'en ont pas non plus.