Un bot IRC !

Message 1, par Elzen

§ 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.

Message 2, par Elzen

§ Posté le 16/06/2015 à 21h 05m 31

Avec quelques camarades, nous avons pris l'habitude de lancer plusieurs instances de mon bot pour faire plusieurs parties de pendu en même temps, parce que c'est plus fun comme ça. Sauf que ça présente quelques petits inconvénients (notamment le fait que les bots ne répondent pas toujours dans le même ordre, ce qui est un peu perturbant).

J'ai donc entrepris de reprendre le code du bot pour en faire un spécialisé pour le pendu, ou plutôt pour le multipendus. J'en ai profité pour corriger quelques bugs mineurs et changer quelques trucs dans la façon d'interagir avec lui. L'instance qui tourne présentement sur ##tdct-jeux réagit quand on commence son message par %, n'hésitez pas à lui parler pour voir ce que ça donne 😉

(Suite au décès inopiné de mon précédent serveur, je profite de mettre en place une nouvelle machine pour essayer de refaire un outil de blog digne de ce nom. J'en profiterai d'ailleurs aussi pour repasser un peu sur certains articles, qui commencent à être particulièrement datés. En attendant, le système de commentaires de ce blog n'est plus fonctionnel, et a donc été désactivé. Désolé ! Vous pouvez néanmoins me contacter si besoin par mail (« mon login at ma machine, comme les gens normaux »), ou d'ailleurs par n'importe quel autre moyen. En espérant remettre les choses en place assez vite, tout plein de datalove sur vous !)