lundi 16 mars 2009

Animal Quiz en Ruby

Allez, comme ça fait un moment que je n'ai pas posté de code, je vous propose un petit jeu rigolo : le quiz des animaux, implémenté en Ruby.
Il s'agit d'un petit algorithme tentant de deviner à quel animal vous pensez : pour ce faire, le programme vous pose un certain nombre de questions, puis vous propose un animal. Si celui-ci est l'animal auquel vous pensiez, le programme gagne. Sinon, il vous demande d'ajouter une question (ayant pour réponse oui ou non) permettant de différencier l'animal proposé et le votre, et l'ajoute dans sa base de question.
La structure employée est un arbre binaire dont les branches sont les questions et les feuilles les animaux. Celle-ci est enregistrée dans un fichier YAML dans mon code en fin de partie.

Le code étant un peu long, et en plusieurs fichiers, au lieu de le coller ici, je vous propose d'aller le consulter/télécharger chez pastie (un fichier d'exemple en YAML inclus) :


Vous noterez la méthode list_animals de la classe Game, non employée dans mon code, mais permettant d'inspecter le contenu de l'arbre de données (Combien d'animaux ? Plusieurs occurrences d'une même espèce ? Etc...). Le principal défaut de cette approche est que l'ordre des questions influe énormément sur la structure. Par ailleurs, il est parfois difficile de différencier deux animaux avec une question "oui/non" non ambiguë (dans l'appli web du "Génie" ci-dessous, il y a la possibilité de ne pas se prononcer...) : un tigre mange-t-il des souris ?

Pour ce code, je me suis basé sur les règles fixées par le défi Ruby Quiz n°15. L'implémentation qu'ils proposent est d'ailleurs bien plus concise que la mienne... A lire pour plus de détails.

Liens



Crédit photo : L-ines, sous CC. Lien.

0 commentaires: