Latihan latihan yang disengaja.
Latihan ini dapat digunakan untuk mempraktikkan teknik pengembangan perangkat lunak, mempelajari teknologi baru, menemukan cara kerja baru, dll.
Secara tradisional, permainan ini dimainkan menggunakan:
papan decoding , dengan perisai di satu ujung menutupi deretan empat lubang besar, dan dua belas baris tambahan yang berisi empat lubang besar di sebelah satu set empat lubang kecil
Pasak kode dari enam warna berbeda, yang akan ditempatkan di lubang besar di papan tulis
Pasak kunci kecil, beberapa hitam berwarna, beberapa putih, yang akan ditempatkan di lubang kecil di papan
Sumber: Wikipedia
Dalam permainan dalang konvensional ada dua pemain:
Codemaker - Memilih pola empat pasak kode dan menempatkannya di empat lubang yang ditutupi oleh perisai. Kode rahasia ini hanya terlihat oleh pembuat kode.
Codebreaker - mencoba menebak kode rahasia dengan dua belas putaran, baik dalam urutan dan warna. Setiap tebakan dibuat dengan menempatkan deretan pasak kode di papan decoding. Setelah ditempatkan, pembuat kode memberikan umpan balik dengan menempatkan nol hingga empat pasak kunci di lubang kecil baris dengan tebakan.
Umpan balik dilengkapi dengan pasak kunci:
Pasak kunci hitam ditempatkan untuk setiap pasak kode dari tebakan yang benar dalam warna dan posisi
Pasak kunci putih ditempatkan untuk setiap pasak kode dari tebakan yang benar dalam warna tetapi dalam posisi yang salah
Jika ada warna duplikat dalam tebakan, mereka hanya dapat diberikan pasak kunci jika sesuai dengan jumlah warna duplikat yang sama dalam kode rahasia
Pasak kunci hitam ditempatkan sebelum pasak kunci putih
Orang adalah pendongeng. Oleh karena itu, menggunakan contoh untuk berbicara tentang aturan bisnis dan mendokumentasikannya adalah teknik yang sangat kuat untuk membangun pemahaman bersama dengan cepat.
Kami memilih untuk menggunakan Gherkin karena kami menyukai strukturnya, tetapi format apa pun akan bekerja dengan baik.
Catatan | Gherkin adalah bahasa teks sederhana dengan struktur sederhana. Contoh yang ditunjukkan dalam skenario Gherkin dimaksudkan untuk menggambarkan aturan bisnis. Gherkin dapat digunakan oleh non-programmer sementara itu cukup terstruktur untuk memungkinkan deskripsi ringkas dari aturan bisnis dan otomatisasi mereka. |
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