E-GOLI-1 : Le jeu de la vie

:timer_clock: 90 minutes

Le problème

Le kata proposé cette semaine est un peu plus complexe, donc il n’y en a qu’un seul.

L’objectif est de faire le kata Game of Life de Conway (autre version des instructions) en TDD et en respectant les principes OO vus en classe (et donc les mocks).

On y ajoute une contrainte supplémentaire pour uniformiser le tout. Le programme doit démarrer avec cette ligne de commande :

mvn exec:java -Dgrid=4x5 -DliveCells=1,2;1,4; -Dgenerations=2

Vous avez vu comment démarrer un main() et obtenir les propriétés avec System.getProperty(). Les arguments sont le format de la grille (4 de large x 4 de haut), le nombre de générations (2) et les cellules vivantes au format (x, y) où (0,0) est en haut à gauche (donc (1,2) et (1,4) - les autres cellules débutent mortes).

Au final, le programme doit écrire dans la console (System.out) la grille, par exemple (cette grille serait celle de la commande précédente à la génération 0, à la génération 2 tout est mort) :

* * * *
* # * *
* * * *
* * * *
* # * *

L’article de wikipedia vous offre des points de départs avec des patterns.

L’exercice

  1. Vous devez faire ce kata en TDD et avec des mocks.
  2. Une fois votre solution faite, comparez-la à celle-ci souvent utilisée comme exemple sur le net. Quelle(s) différence(s) notez-vous?

NOTE: Ce problème est très utilisé pour pratiquer différentes techniques en particulier, car il existe une multitude de bonnes manières de le faire. Ne cherchez donc pas de réponse unique, mais servez-vous de ce problème pour pratiquer des techniques.