À présent, sauf erreur, toutes les règles sont implémentées à l'exception de la détection d'une partie nulle. Il est temps de revenir à une session de jeu et de faire jouer deux joueurs automatiquement.
Les tests actuellement disponibles pour une session de jeu sont :
La fois dernière, j'avais extrait une interface de validation des mouvements. Il est maintenant temps d'implémenter les restrictions de mouvements des différentes pièces du Doubutsu Shogi. Et ceci, toujours selon la méthode TDD, en Python.
Pour le moment, j'ai extrait une interface grâce à un Mock Object.
Rappel de l'épisode précédent là où je l'avais laissé. J'avais sélectionné deux nouvelles règles du jeu à implémenter. Le fait que le premier joueur était déterminé au hasard et le fait que chaque pièce était soumise à des déplacements contraints.
C'est bien joli de déplacer des pièces sur un tableau de Shôgi. Mais dans le Shôgi, il y a deux joueurs qui s'affrontent, et pour le moment, mon programme ne gère pas du tout ce concept.
J'ai beaucoup déplacé des pièces sur le tablier de Dôbutsu Shôgi jusqu'à maintenant. Pour le moment, il s'agit d'une implémentation où un joueur unique déplace des pièces un peu comme il le veut. Il peut aussi capturer des pièces et les parachuter.
J'aimerais à présent ajouter aux pièces les contraintes …
Dans l'épisode précédent, j'avais extrait une classe Board pour faciliter l'implémentation de la possibilité d'avoir deux pièces identiques à des emplacements différents.
Tout d'abord, je vérifie que cela ne fonctionne bien pas.
Au tout début de mon voyage dans l'implémentation des règles du Dôbutsu Shôgi en utilisant le Test Driven Development, j'avais créé une fonction capture_lion, qui m'avait permis de démarrer.
Cette fonction était une fonction d'attente, et il est temps d'implémenter la condition de victoire de capture du lion correctement.
À l'épisode précédent, j'avais utilisé un Mock Object pour révéler un début d'interface d'une classe Tray représentant la réserve dans laquelle vont les pions capturés au Dôbutsu Shôgi.
Dans cet épisode, je vais effectuer l'implémentation réelle de cette réserve.
Mais tout d'abord
À la fin de l'article précédent, je m'apercevais …
Dans l'épisode « Mouvement et Capture » une erreur s'est glissée dans le programme. Je reviens un peu sur cette erreur, car elle donne une indication forte de ce qu'apporte le TDD et ce qu'il ne promet pas.
Un lecteur (lien cassé) m'a fait remarquer qu'il ne comprenait pas la ligne indiquée …
Dans l'épisode précédent, le système permettait de capturer des pièces sur le tablier d'un Dôbutsu Shôgi. Cela se traduisait par la disparition d'une pièce lorsqu'une autre pièce effectuait un mouvement de capture explicite vers la position de la pièce capturée.
Aujourd'hui, je continue dans cette veine, car la capture au …