Как обеспечить "чистоту" обработки Действий со случайным исходом? #26
-
Как обеспечить однозначную повторяемость действий при работе со случайными величинами вроде порядка карт в перемешанной колоде? Допустим, на вход Игре подаются две Команды: Перемешать Колоду и Взять первую Карту из Колоды. Каким образом в тестах или при повторном проигрывании действий обеспечить одинаковый порядок карт в Колоде и таким образом гарантировать, что второе действие в этой последовательности будет всегда иметь один и тот же результат? При этом, нужно учесть, что в реальной Игре результат второго действия должен всегда быть случайным... |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Есть вариант задавать "режим" игры, что-то вроде "интерактивный" и "повтор". В первом случае Команды, создающие случайные данные, реально перемешивают Колоды и бросают Кубики, а во втором - используют поддельные реализации с заранее заданными исходами. По идее, в "интерактивном" режиме можно использовать специального Секретаря, который бы сохранял состояние случайных величин для последующего одинакового проигрывания партий в режиме "повтор". |
Beta Was this translation helpful? Give feedback.
-
Записывать для последующего проигрывания мы всегда будем уже сформированный результат случайного исхода. То есть, в истории игры появится запись вроде "Игрок выкинул 5 и 4 на кубиках" или "Игрок вытянул семерку треф из колоды". Подробнее в #60 и ADR Сохранять изменения состояния системы в виде событий |
Beta Was this translation helpful? Give feedback.
Записывать для последующего проигрывания мы всегда будем уже сформированный результат случайного исхода. То есть, в истории игры появится запись вроде "Игрок выкинул 5 и 4 на кубиках" или "Игрок вытянул семерку треф из колоды".
Подробнее в #60 и ADR Сохранять изменения состояния системы в виде событий