
В этой статье мы разберем механику игры в кости в Kingdom Come: Deliverance 2. Углубимся в правила и рассмотрим, как разные виды игральных костей влияют на ход партии. Кроме того проведем анализ вероятностей для различных комбинаций и выясним, какие тактики позволяют повысить шансы на победу.
Основные правила игры
Партия ведется до набора необходимого количества очков.
Игрок начинает первым и бросает все шесть костей, а затем мы откладываем выигрышные комбинации. Оставшиеся кости можно перебросить или передать ход сопернику. Выигрышные очки записываются на счет при завершении хода. Важно, если после броска костей вы не смогли ничего отложить, то набранные очки за раунд сгорают, а ход переходит к сопернику. Также, если в результате бросков вы сумели отложить все оставшиеся у вас кости, то можете перебросить все шесть костей еще раз и продолжить свой ход.

Когда разобрались с правилами, мы можем перейти к поиску предпочтительной тактики игры. Поскольку значения на кубиках выпадают случайным образом, будем принимать решения на основе вероятностей выпадения условного успеха, а также взвешивать возможный выигрыш от броска.
Рассмотрим пример броска двух кубиков
При броске двух кубиков нашим успехом будет выпадение единицы или пятерки. Количество возможных исходов при броске двух кубиков D6 равно тридцати шести.
Перечень комбинаций (где Х - выпадение (2,3,4,6):
Комбинации | Очки | Вероятность выпадения |
(1,Х) | 100 | (1/6 * 4/6 = 4/36) |
(5,Х) | 50 | (1/6 * 4/6 = 4/36) |
(Х,1) | 100 | (1/6 * 4/6 = 4/36) |
(Х,5) | 50 | (1/6 * 4/6 = 4/36) |
(1,5) | 150 | (1/6 * 1/6 = 1/36) |
(5,1) | 150 | (1/6 * 1/6 = 1/36) |
(1,1) | 200 | (1/6 * 1/6 = 1/36) |
(5,5) | 100 | (1/6 * 1/6 = 1/36) |
(Х,Х) | 0 | (4/6 * 4/6 = 16/36) |
Вероятность успеха при броске будет суммой вероятностей успешных комбинаций, для нашего случая она составляет 20/36 или 55,56%.
Ожидаемый выигрыш (матожидание) рассчитываем как сумму произведений вероятностей на их выигрыш:
E=(100 4/36) + (50 4/36) + (100 4/36) + (50 4/36) + (150 1/36) + (150 1/36) + (200* 1/36) + (100* 1/36) = 50 очков
Как вы понимаете, для расчета вероятности и ожидаемого выигрыша при броске шести или пяти кубиков с учетом всех правил набора очков, проще воспользоваться программными средствами.
Ниже я привожу пример кода подсчета на Python.
from collections import defaultdict
from itertools import product
# Количество кубиков (можно менять)
NUM_DICE = 6
# Определяем выигрышные комбинации
WINNING_COMBOS = {
(1, 2, 3, 4, 5, 6): 1500,
(1, 1, 1, 1, 1, 1): 8000,
(2, 2, 2, 2, 2, 2): 1600,
(3, 3, 3, 3, 3, 3): 2400,
(4, 4, 4, 4, 4, 4): 3200,
(5, 5, 5, 5, 5, 5): 4000,
(6, 6, 6, 6, 6, 6): 4800,
(1, 1, 1, 1, 1): 4000,
(2, 2, 2, 2, 2): 800,
(3, 3, 3, 3, 3): 1200,
(4, 4, 4, 4, 4): 1600,
(5, 5, 5, 5, 5): 2000,
(6, 6, 6, 6, 6): 2400,
(1, 2, 3, 4, 5): 500,
(2, 3, 4, 5, 6): 750,
(1, 1, 1, 1): 2000,
(2, 2, 2, 2): 400,
(3, 3, 3, 3): 600,
(4, 4, 4, 4): 800,
(5, 5, 5, 5): 1000,
(6, 6, 6, 6): 1200,
(1, 1, 1): 1000,
(2, 2, 2): 200,
(3, 3, 3): 300,
(4, 4, 4): 400,
(5, 5, 5): 500,
(6, 6, 6): 600,
(1, 1): 200,
(5, 5): 100,
(1, 5): 150,
}
# Выигрыш за одиночные 1 и 5
SINGLE_VALUES = {1: 100, 5: 50}
def get_score(dice):
"""Вычисляет очки за комбинацию кубиков, включая дополнительные значения."""
dice = sorted(dice) # Сортируем для унификации комбинаций
remaining_dice = list(dice) # Список костей, которые еще не учтены
total_score = 0
# Проверяем, есть ли выигрышные комбинации
for combo, value in sorted(WINNING_COMBOS.items(), key=lambda x: -len(x[0])):
# Проверяем, можно ли вычесть комбинацию из имеющихся костей
if all(remaining_dice.count(x) >= combo.count(x) for x in combo):
total_score += value
for x in combo:
remaining_dice.remove(x) # Удаляем использованные кости
# Подсчёт одиночных значений (1 и 5) из оставшихся костей
for num, value in SINGLE_VALUES.items():
total_score += remaining_dice.count(num) * value
return total_score
def calculate_probabilities():
"""Считает вероятность каждой комбинации и её выигрыш."""
outcomes = defaultdict(int)
total_outcomes = 6 ** NUM_DICE # Всего возможных бросков
success_count = 0 # Количество успешных бросков
# Генерация всех возможных бросков
for roll in product(range(1, 7), repeat=NUM_DICE):
sorted_combo = tuple(sorted(roll))
score = get_score(roll)
outcomes[sorted_combo] = (score, outcomes[sorted_combo][1] + 1) if sorted_combo in outcomes else (score, 1)
if score > 0: # Если бросок приносит очки, считаем его успешным
success_count += 1
# Преобразование количества случаев в вероятность
probabilities = {combo: (score, count / total_outcomes) for combo, (score, count) in outcomes.items()}
success_probability = success_count / total_outcomes # Вероятность успеха
return probabilities, success_probability
def expected_winnings(outcomes):
"""Вычисляет ожидаемый выигрыш."""
return sum(score * prob for (_, (score, prob)) in outcomes.items())
# Подсчет вероятностей, вероятности успеха и ожидаемого выигрыша
outcome_probabilities, success_probability = calculate_probabilities()
expected_value = expected_winnings(outcome_probabilities)
# Вывод результатов
print(f"Ожидаемый выигрыш: {expected_value:.3f} очков")
print(f"Вероятность успеха: {success_probability:.4%}\n")
print("Вероятности выигрыша по комбинациям:")
for combo, (score, prob) in sorted(outcome_probabilities.items()):
print(f"Комбинация {combo} - Выигрыш: {score} очков - Вероятность: {prob:.4%}")
Результаты расчетов приведу в таблице:
Кубики | Шанс успеха | Ожидаемый выигрыш | Мода (самый частый исход) | Медианный выигрыш |
1 кубик | 0,33 | 25 | 0 | 0 |
2 кубика | 0,56 | 50 | 0 | 50 |
3 кубика | 0,72 | 87 | 100 | 50 |
4 кубика | 0,84 | 144 | 100 | 100 |
5 кубиков | 0,92 | 242 | 100 | 150 |
6 кубиков | 0,97 | 399 | 200 | 250 |
Теперь попробуем разработать тактику для игры
Игра идет до набора определенного количество очков (2000, 3000, 4000 очков) в зависимости от ставки. Первым бросает игрок все шесть кубиков, вероятность того что на кубиках выпадет три или более одинаковых значений составляет 37.36%, что достаточно много. Далее нужно решить, какие комбинации стоит откладывать и когда передавать ход противнику.
Какие комбинации стоит оставлять на столе
При броске кубиков могут выпасть разные комбинации, при этом мы не обязаны откладывать все из них, а можем оставить на столе для дальнейшего переброса. Например, если у вас выпала комбинация костей (1, 1, 3, 3, 3, 6)
То мы можем:
отложить 1-цу и перебросить 5 костей;
отложить две 1-цы и перебросить 4 кости;
отложить все комбинации (1, 1, 3, 3, 3) и оставить себе 500 очков.
Отложим один кубик с 1-цей.
Ожидаемый выигрыш от броска 5 оставшихся костей составляет 242 очка с вероятностью на успех в 0,92%, что может нам принести (100+242)*0,92 = 314,64 очков.
Если мы отложим две единицы, что даст нам 200 очков, то ожидаемый выигрыш от броска четырех костей принесет нам (200 + 144)*0,84 = 288,96 очков, что менее выгодно если бы мы оставили один кубик с 1-цей на столе.
При этом, ожидаемые выигрыши от дальнейшей переброски меньше, чем если бы мы забрали 500 очков и завершили ход.
Если же у нас выпала комбинация из (1, 6, 2, 2, 2, 6), то выгодней отложить 1-цу и перебросить пять оставшихся костей чем забрать 300 победных очков.
Таким образом, при броске шести костей, если вы набрали сумму менее чем 350 очков, то стоит отложить одну единицу (или 5-ку) и перебросить пять костей.
Когда стоит перебрасывать оставшиеся кости
Рассмотрим пример, вы набрали 300 очков и у вас осталось еще 3 кубика на столе. Ожидаемый выигрыш после броска трёх кубиков с учетом набранных очков (300 + 87)*0,72 + 0*0,28 = 279 очков. Следовательно лучшим вариантом будет завершение хода.
Общий совет по тактике таков:
При броске шести костей забираем комбинации, которые дадут больше 300 очков, иначе откладываем одну 1 или 5-ку (если есть возможность) и перебрасываем оставшиеся пять костей.
Четыре кости стоит перебрасывать если у вас меньше 800 очков (если вы бросаете все шесть костей второй раз за ход, например).
Перебрасывать 3 кости стоит, когда у вас меньше 300 набранных очков.
1,2 кубика стоит переписывать, если только идете во банк.
Конечно решение рисковать или нет стоит принимать в зависимости от уже набранных очков за партию. Если у оппонента до выигрыша в партии осталось меньше 400 очков, то скорей всего, он завершит игру в свой ход и у вас не остается ничего кроме как рисковать.
Игральные кости
В игре есть возможность выбрать особые игральные кости для бросков, что оказывает значительное влияние на вашу тактику.
Рассмотрим некоторые из них:
1. Заряженная игральная кость - значительно увеличивает выпадение 1 (66,7%)
2. Игральная кость Лю - увеличивает выпадение 6 (34,8%)
3. Игральная кость святого Антиоха - всегда выпадает 3
4. Королевская игральная кость - увеличенное значение 3, 4
5. Кость осмотрительного жулика - повышенное значение 1, 5 (23,8%)
6. Нечетная игральная кость - повышенное значение 1,3,5 (26,7%)
7. Счастливая игральная кость - повышенное значение 1, 5, 6 (27,3%, 18,2%, 27,3%)
8. Удачливая игральная кость - повышенное значение 1, 5, 6 (33,3%, 33,3%, 22,2%)
9. Чётная кость - повышенный шанс на 2, 4, 6 (26,7%)
10. Раскрашенная игральная кость - 1, 5, 6 (18,7%, 43,7%, 18,7%)
Логичнее всего подбирать сеты из игральных костей, что дадут вам преимущество в наборе выигрышных комбинаций. Самой сильной комбинацией является получение трех и более единиц. Также, выпадение хотя бы одной единицы само по себе дает успешный бросок.
Сет из костей под номерами: 1, 5, 6, 7, 8, 10 - может дать вам весомое преимущество, кости, которые увеличивают шанс выпадения чисел (2,4,3,6) не так хороши (конечно если вы не соберете сет из шести костей святого Антиоха, что будет гарантировать вам выигрыш в любой партии).
Чертова голова - уникальная кость, что при выпадении единицы способна заменить любую другую кость в комбинации из нескольких костей.
Например, если вы выкинули две одинаковые кости и чертову голову, то можете выбрать данную кость и получить комбинацию из трех одинаковых костей. Вероятность выпадения, на пяти костях, двух одинаковых значений примерно 0.91%, также вам нужно чтобы на чертовой голове выпала единица, а это 0.16%. В общем данная кость может значительно увеличить ожидаемый выигрыш, но использовать её стоит только в сете с костями увеличивающими значения 1 и 5-ки.