Преднамеренное практическое упражнение.
Упражнения можно использовать для практики методов разработки программного обеспечения, изучения новых технологий, поиска новых способов работы и т. Д.
Традиционно игра играется с использованием:
Доска декодирования , с щитом на одном конце, покрывающем ряд из четырех больших отверстий, и двенадцать дополнительных рядов, содержащих четыре больших отверстия рядом с набором из четырех небольших отверстий
Код колышки из шести разных цветов, которые будут размещены в больших отверстиях на доске
маленькие колышки , некоторые цветные черные, некоторые белые, которые будут помещены в небольшие отверстия на доске
Источник: Википедия
В традиционной игре «Меседник» есть два игрока:
Codemaker - выбирает шаблон из четырех кодировщиков и помещает их в четыре отверстия, покрытых щитом. Этот секретный код виден только кодировке.
Codebreaker - пытается угадать секретный код с двенадцатью поворотами как в порядке, так и в цвете. Каждое предположение сделано путем размещения ряда кодовых колышков на доску декодирования. После размещения кодовой, обеспечивая обратную связь, размещая от нуля до четырех ключевых колышков в небольших отверстиях строки с догадкой.
Обратная связь предоставляется ключевыми колышками:
Колышка с черным ключом помещается для каждого кодировного колышка из предположения, который правильный как по цвету, так и по позиции
Белый колышек размещен для каждого кодируемого кожура из предположения, который правильный по цвету, но в неправильном положении
Если в догадке есть дубликаты, они могут быть награждены колышками только в том случае, если они соответствуют одинаковому количеству дублирующих цветов в секретном коде.
Колышки с черными ключами помещаются перед белыми колышками
Люди рассказчики. Таким образом, использование примеров, чтобы говорить о бизнес -правилах и документировать их, является очень мощной техникой для быстрого построения общего понимания.
Мы решили использовать Геркин, так как нам нравится его структура, но любой формат будет работать одинаково хорошо.
Примечание | Геркин-это просто текстовый язык с простой структурой. Примеры, показанные в сценариях Геркина, предназначены для иллюстрации бизнес -правил. Геркин может использоваться неправограммными лицами, в то время как он достаточно структурирован, чтобы разрешить краткое описание бизнес-правил и их автоматизации. |
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