15 Déc 2014

Dojo #12

Game Design et TDD !

Pour la 12ème édition de ce Dojo, nous avons joué au Poker “fermé” ou 5 Card Draw.

Sujet : http://codingdojo.org/cgi-bin/index.pl?KataPokerHands.

L’objectif de l’exercice est de déterminer qui est le vainqueur de la partie parmi plusieurs mains de poker.

Technologies :

  • 3 binômes en Javascript/Karma
  • 5 binômes en C#/MS Test
  • 1 binôme en Java /JUnit

Nanterre DOJO

 

 

Comme toujours le Dojo était orienté TDD et avec cet exercice, la nécessité de bien réfléchir aux tests unitaires permet d’orienter correctement l’implémentation des règles du poker.

 

Deux approches du sujet s’opposent parmi les binômes, une première consiste à déterminer les combinaisons possibles dans une main en commençant par la meilleure (la quint flush royale) et en implémentant les autres de manière incrémentale et une deuxième qui, à l’inverse, cherche à déterminer la plus haute carte d’une main sans combinaisons et ensuite en implémentant les combinaisons en commençant par la plus faible (la paire).

 

Plusieurs façons de faire se sont dégagées pour déterminer les combinaisons possibles :

  • En brut, en comptant le nombre de cartes de même valeur, de même couleur ou qui se suivent.
  • Par le “grouping” des cartes de même valeur/couleur. (exemple : si parmi 5 cartes, deux groupes de carte se dégagent, nous sommes dans le cas d’un carré ou d’un full)
  • Par calcul mathématiques avec les valeurs des cartes (exemple : en appliquant un tri spécifique des cartes de la main, si la racine cubique du produit des trois premières cartes est égale à la valeur de la première carte, nous avons au moins un brelan dans la main, etc.)

Lille DOJO

 

Durée du dojo :

  • 15 minutes de présentation du sujet et d’explications des règles du 5 Card Draw.
  • 1H30 de réalisation
  • 15 minutes de débriefing
Share