Le démineur est un petit jeu que tout informaticien devrait connaître. Si ce n'est pas le cas, je compte sur vous pour essayer ce petit jeu magique.
Dans ce jeu, nous avons une grille qu'il faut déminer. Il y a des mines réparties un peu partout et des indices sous formes de nombre sont donnés au joueur. Chaque chiffre indique le nombre de mines présentes autour de la case. Avec un peu de logique, le joueur doit marquer les mines (avec un petit drapeau) et trouver toutes les cases sans mine. S'il clique sur une mine, il explose et la partie prend fin.
L'objectif de notre kata est de pouvoir générer une grille avec les différents indices (les chiffres) permettant de détecter la présence des mines. L'idée est donc de créer une fonction qui prend une grille avec seulement les mines en paramètre et qui retourne cette même grille avec les chiffres.
Par exemple, pour la grille suivante :
..x
...
...
la fonction donnera :
01x
011
000
Objectifs
L'objectif est de créer cette fonction en utilisant la méthode TDD. Voici un petit rappel de la méthode.
Etape 1 - RED
Vous devez écrire un test qui échoue.
Etape 2 - GREEN
Si vous avez un test qui est au rouge, vous devez écrire le code le plus simple possible pour le faire passer au vert.
Etape 3 - REFACTORING
Si cela est possible et sans ajouter ou supprimer de comportement au code, vous devez améliorer le code (vous ne devez pas repasser au rouge).
Pour les inscrits au service
Création d'un billet personnel dédié à ce kata
N'hésitez pas à créer un nouveau billet dans la section exercice (je le déplacerai s'il n'est pas au bon endroit) sous la forme Kata - Nom du kata - Nom de l'utilisateur. Dans votre message, vous pouvez indiquer le code de vos tests et le code qui permet de faire passer les tests. Plus vous détaillez l'évolution de votre code et mieux je pourrais vous guider.
Langages acceptés
Pour le moment, je peux vous suivre avec les langages wLangage, Python et Java.
Pour faire cet exercice, je vous invite à utiliser la méthodologie TDD. Je rappelle les étapes :
Bon kata à tous !