Skip to content

Mastermind

nergal-perm edited this page Apr 5, 2021 · 1 revision

Правила игры

Игра (Рефери) загадывает четырехзначное число с уникальными цифрами. Игрок должен угадать загаданное число за минимальное число попыток. Каждая попытка игрока состоит также из четырехзначного числа с уникальными цифрами. В ответ на каждую попытку Игра возвращает ее результат в виде двух чисел:

  • число "Быков" - количество угаданных цифр И их позиций одновременно;
  • число "Коров" - количество угаданных цифр, НО НЕ их позиций.

Пример:

Загадано число 1234. Попытки игрока:

  • 4261 -> 1 бык (двойка на второй позиции), 2 коровы (4 и 1 есть в загаданном числе, но стоят на других позициях)
  • 1246 -> 2 быка (1 и 2 на своих местах), 1 корова (четверка стоит не на своем месте)

Механика игры

Состояние игры

Параметры состояния

ID Название Тип значения Описание
С01 Ведущий игрок Игрок Игрок, загадывающий число в этом раунде игры
С02 Активный игрок Игрок Игрок, который должен совершить Действие в текущем состоянии игры
С03 Загаданное число Число Четырехзначное число, загаданное Ведущим игроком, цифры в числе уникальны
С04 Текущая попытка Число Четырехзначное число, предложенное отгадывающим игроком
С05 Результат текущей попытки Коллекция Два числа: быки и коровы; сообщает Ведущий игрок в ответ на попытку
С06 История попыток Коллекция Список пар "Попытка - Результат", предложенных в текущем раунде игры

Также состояние должно хранить общий список игроков и, возможно, очередность их ходов, но это кажется общей для всех игр информацией.

Изменения состояния

ID Параметр Характер изменения Действия Описание
ИС01 С01 Следующее значение Д06 Смена Ведущего игрока (в начале игры или следующего раунда)
ИС02 С02 Следующее значение Д01, Д02, Д03 Смена Активного игрока (переход хода)
ИС03 С03 Значение аргумента действия Д01 Сохранение загаданного числа
ИС04 Очистка Д06 Очистка загаданного числа в начале игры или раунда
ИС05 С04 Значение аргумента действия Д02 Сохранение текущей попытки
ИС06 Очистка Д03 Очистка текущей попытки при записи попытки в историю
ИС07 С05 Значение аргумента действия Д03 Сохранение ответа на попытку
ИС08 Очистка Д03 Очистка ответа на попытку при записи попытки в историю
ИС09 С06 Добавление элемента Д03 Запись попытки в историю
ИС10 Очистка Д06 Очистка истории попыток в начале новой игры / раунда
ИС11 Значение параметра С01 Д06 Передача хода Ведущему игроку в начале игры или раунда

Действия

ID Название Тип / Фаза игры Метаданные Влияние на состояние
Д01 Загадать число Инициализация 4 разные цифры ИС03, ИС02
Д02 Попытаться отгадать число Ход 4 разные цифры ИС05, ИС02
Д03 Ответить на попытку Ход 2 числа (быки и коровы) ИС07, ИС09, ИС06, ИС08, ИС02
Д04 Опубликовать результат игры Завершение Количество попыток N/A
Д05 Просмотреть историю попыток Ход N/A N/A
Д06 Начать новый раунд игры Завершение N/A ИС04, ИС10, ИС01, ИС11

Структура ходов

Х01. Обычный ход

Фаза Игрок Действие
Предпроверка - -
Ход Активный Д02. Попытаться отгадать число
Ход Оппонент Д03. Ответить на попытку
Постпроверка Рефери Проверка завершения игры (загаданное число угадано)

Структура игры

На примере игры одного игрока против игры. В этом случае Активный игрок всегда один и тот же (человек), роль Оппонента играет игра.

Фаза Повторяемость Тип Содержание
Инициализация Однократно Действие Д01. Загадать число
Игра Цикл Ход Х01. Обычный ход
Завершение Однократно Действие Д04. Опубликовать результат игры
Clone this wiki locally