Um exercício prático deliberado.
O exercício pode ser usado para praticar técnicas de desenvolvimento de software, aprendendo novas tecnologias, encontrando novas maneiras de trabalhar etc.
Tradicionalmente, o jogo é jogado usando:
Uma placa de decodificação , com um escudo em uma extremidade cobrindo uma fileira de quatro grandes orifícios e doze linhas adicionais contendo quatro grandes orifícios ao lado de um conjunto de quatro pequenos orifícios
pinos de código de seis cores diferentes, que serão colocadas nos grandes orifícios no quadro
Pegs pequenos pinos , alguns de cor preta, outros brancos, que serão colocados nos pequenos orifícios no quadro
Fonte: Wikipedia
No jogo de mentalidade convencional, existem dois jogadores:
Codemank - escolhe um padrão de quatro pinos de código e os coloca nos quatro orifícios cobertos pelo escudo. Este código secreto é visível apenas para o fabricante de códigos.
CodeBreaker - tenta adivinhar o código secreto com doze voltas, tanto em ordem quanto em cor. Cada palpite é feito colocando uma linha de pinos de código na placa de decodificação. Uma vez colocado, o fabricante de códigos fornece feedback, colocando zero a quatro pinos -chave nos pequenos orifícios da linha com o palpite.
O feedback é fornecido com os principais pinos:
Um pino preto é colocado para cada código de código a partir do palpite que está correto na cor e na posição
Um pino de chave branca é colocada para cada código de código do palpite que é correto em cores, mas em uma posição errada
Se houver cores duplicadas no palpite, elas só poderão receber um pino chave se corresponderem ao mesmo número de cores duplicadas no código secreto
PEGs de chave preta são colocados antes dos pinos brancos
Pessoas são contadores de histórias. Portanto, usar exemplos para falar sobre as regras de negócios e documentá -las é uma técnica muito poderosa para criar um entendimento compartilhado rapidamente.
Optamos por usar o Gherkin, pois gostamos de sua estrutura, mas qualquer formato funcionaria igualmente bem.
Observação | Gherkin é uma linguagem de texto simples com uma estrutura simples. Exemplos mostrados nos cenários do Gherkin destinam -se a ilustrar as regras de negócios. O Gherkin pode ser usado por não programadores, enquanto estiver estruturado o suficiente para permitir a descrição concisa das regras de negócios e sua automação. |
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