Eine absichtliche Übungsübung.
Die Übung kann verwendet werden, um Softwareentwicklungstechniken zu üben, neue Technologien zu lernen, neue Arbeitsweisen zu finden usw.
Traditionell wird das Spiel mit:
Ein Dekodierungsbrett mit einem Schild an einem Ende, der eine Reihe von vier großen Löchern bedeckt, und zwölf zusätzliche Zeilen mit vier großen Löchern neben einem Satz von vier kleinen Löchern
Codestifte von sechs verschiedenen Farben, die in die großen Löcher auf der Tafel platziert werden
Kleine Schlüsselstifte , einige farbig schwarz, einige weiß, die in den kleinen Löchern auf dem Brett platziert werden
Quelle: Wikipedia
Im konventionellen Mastermind -Spiel gibt es zwei Spieler:
Codemaker - wählt ein Muster von vier Codestiften aus und platziert sie in die vier vom Schild bedeckten Löcher. Dieser Geheimcode ist nur für den Kodemaker sichtbar.
CodeBreaker - versucht, den geheimen Code mit zwölf Wendungen in Reihenfolge und Farbe zu erraten. Jede Vermutung wird vorgenommen, indem eine Reihe von Codestiften auf die Dekodierungsscheibe platziert werden. Nach der Platzierung bietet der Kodemaker Feedback, indem er mit der Vermutung null bis vier Schlüsselstifte in den kleinen Löchern der Zeile platziert.
Feedback ist mit wichtigen Stiften versehen:
Für jeden Code -Peg wird ein schwarzer Schlüssel aus der Vermutung platziert, der sowohl in Farbe als auch in Position korrekt ist
Für jeden Code -Peg wird ein weißer Schlüsselstift aus der Vermutung platziert, die in der Farbe korrekt ist, aber in einer falschen Position
Wenn die Vermutung doppelte Farben enthält, können sie nur einen Schlüsselstift erhalten, wenn sie der gleichen Anzahl von doppelten Farben im geheimen Code entsprechen
Schwarze Schlüsselstifte werden vor weißen Schlüsselstiften platziert
Die Menschen sind Geschichtenerzähler. Daher ist es eine sehr leistungsstarke Technik, um Beispiele zu sprechen, um über Geschäftsregeln zu sprechen und sie zu dokumentieren, um schnell ein gemeinsames Verständnis aufzubauen.
Wir haben uns entschieden, Gherkin zu verwenden, da wir seine Struktur mögen, aber jedes Format würde gleich gut funktionieren.
Notiz | Gherkin ist eine einfache Textsprache mit einer einfachen Struktur. Beispiele in Gherkin -Szenarien sollen die Geschäftsregeln veranschaulichen. Gherkin kann von Nichtprogrammern verwendet werden, während es so strukturiert ist, dass es eine kurze Beschreibung der Geschäftsregeln und ihrer Automatisierung ermöglicht. |
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