Un exercice de pratique délibéré.
L'exercice peut être utilisé pour pratiquer les techniques de développement de logiciels, l'apprentissage de nouvelles technologies, la recherche de nouvelles façons de travailler, etc.
Traditionnellement, le jeu est joué en utilisant:
une planche de décodage , avec un bouclier à une extrémité couvrant une rangée de quatre gros trous, et douze rangées supplémentaires contenant quatre gros trous à côté d'un ensemble de quatre petits trous
des chevilles de code de six couleurs différentes, qui seront placées dans les grands trous de la carte
petites chevilles clés , du noir de couleur, du blanc, qui sera placé dans les petits trous sur la planche
Source: Wikipedia
Dans le jeu de cerveau conventionnel, il y a deux joueurs:
Codemaker - choisit un modèle de quatre chevilles de code et les place dans les quatre trous couverts par le bouclier. Ce code secret n'est visible que par le codemaker.
CodeBreaker - essaie de deviner le code secret avec douze tours, à la fois en ordre et en couleur. Chaque supposition est faite en plaçant une rangée de chevilles de code sur la carte de décodage. Une fois placé, le codemateur fournit des commentaires en plaçant zéro à quatre chevilles clés dans les petits trous de la ligne avec la supposition.
Les commentaires sont fournis avec des chevilles clés:
Une cheville noire est placée pour chaque cheville de code de la supposition qui est correcte à la fois en couleur et en position
Une cheville de clé blanche est placée pour chaque cheville de code de la supposition qui est correcte en couleur mais dans une mauvaise position
S'il y a des couleurs en double dans la supposition, ils ne peuvent recevoir une cheville clé que s'ils correspondent au même nombre de couleurs en double dans le code secret
Les chevilles clés noires sont placées avant les chevilles clés blanches
Les gens sont des conteurs. Par conséquent, utiliser des exemples pour parler des règles commerciales et les documenter est une technique très puissante pour créer rapidement une compréhension partagée.
Nous avons choisi d'utiliser Gherkin car nous aimons sa structure, mais tout format fonctionnerait aussi bien.
Note | Gherkin est un langage en texte clair avec une structure simple. Les exemples indiqués dans les scénarios Gherkin sont destinés à illustrer les règles commerciales. Gherkin peut être utilisé par les non-programmeurs alors qu'il est suffisamment structuré pour permettre une description concise des règles commerciales et de leur automatisation. |
Feature : Playing mastermind
As a code breaker
I want to practice breaking codes
In order to have fun
Scenario : Joining the game
Given a decoding board of 12 attempts
And the code maker has placed a secret on the board
When I join the game
Then the game should be started with an empty board
And I should have 12 attempts available
Scenario Outline : Making a guess
Given a decoding board of 12 attempts
And the code maker placed the "<Pattern>" code pattern on the board
When I try to break the code with "<Guess>"
Then the code maker should give me "<Feedback>" feedback on my guess
Examples :
# Feedback legend:
# B - Black - Correct colour and position
# W - White - Correct colour but wrong position
| Pattern | Guess | Feedback |
| Red Green Blue Yellow | Red Purple Purple Purple | B |
| Red Green Blue Yellow | Purple Purple Purple Purple | |
| Red Green Blue Yellow | Purple Red Purple Purple | W |
| Red Green Blue Yellow | Red Purple Green Purple | B W |
| Red Green Blue Yellow | Red Green Blue Purple | B B B |
| Red Green Blue Yellow | Red Yellow Blue Green | B B W W |
| Red Green Blue Yellow | Yellow Blue Green Red | W W W W |
| Red Green Blue Yellow | Red Green Blue Yellow | B B B B |
| Red Green Blue Yellow | Red Red Red Purple | B |
| Green Red Blue Yellow | Green Yellow Red Blue | B W W W |
| Green Red Blue Yellow | Red Green Yellow Blue | W W W W |
| Green Red Blue Yellow | Green Red Yellow Blue | B B W W |
| Red Green Red Yellow | Red Red Purple Purple | B W |
| Red Red Red Yellow | Red Green Purple Purple | B |
| Red Red Blue Yellow | Purple Purple Red Purple | W |
| Red Blue Blue Yellow | Purple Purple Red Red | W |
Scenario : Winning a game
Given a decoding board of 12 attempts
And the code maker placed the "Red Green Blue Yellow" secret on the board
When I try to break the code with an invalid pattern 11 times
But I break the code in the final guess
Then I should win the game
And I should no longer be able to make guesses
Scenario : Losing a game
Given a decoding board of 12 attempts
And the code maker placed the "Red Green Blue Yellow" secret on the board
When I try to break the code with an invalid pattern 12 times
Then I should lose the game
And I should no longer be able to make guesses