В Dungeons & Dragons почти все решается броском кубика. Как правило, если бросок больше или равен указанному значению, ваша попытка сделать то, что вы хотели сделать, увенчается успехом и в противном случае не удастся. Чаще всего для броска используется 20-сторонний штамп (он же d20).
В других случаях используется система вызова навыков. Это похоже на простую систему, описанную выше, но успех определяется тем, успешно ли игрок (-ы) бросает определенное количество раз, прежде чем потерпеть неудачу определенное количество раз. Например, игрок (-ы) могут пытаться взломать несколько замков на двери с ограниченным количеством отмычек. Отдельные успешные броски представляют собой успешный выбор одного из замков, а отдельные неудачные броски представляют собой взлом отмычки. Общий успех означал бы успешное вскрытие всех замков перед тем, как взломать все отмычки.
Кроме того, определенные броски могут быть критическими бросками. На d20 бросок 1 - критический сбой, приводящий к немедленному провалу всего вызова (в приведенном выше примере игрок (-ы) могут случайно предупредить охранника). Бросок 20 - это критический успех, который приводит к немедленному выполнению всего вызова (в приведенном выше примере игрок (-ы) может найти набор ключей для замков, что устраняет необходимость их взлома). В случае критического броска, задача немедленно заканчивается и результат определяется независимо от количества предыдущих успехов и неудач.
В этом задании вам будет предоставлена сложность, количество необходимых успехов и количество неудач, при которых испытание было неудачным. Вы должны смоделировать игрока, пытающегося выполнить вызов, и вывести результат.
вход
3 целых числа, представляющих значение, которое должно быть достигнуто или превышено для достижения успеха на отдельном броске, количество успехов, необходимых для успешного выполнения задания, и количество неудач, при которых испытание не удалось. Порядок и формат входных данных не имеет значения, пока вы указываете, какой порядок вы будете использовать. Сложность будет от 1 до 20 включительно, а количество успехов и неудач будет от 1 до 100 включительно.
Выход
Результаты каждого броска d20 (целые числа по порядку) и общий результат испытания (значение truey / falsey). Формат не имеет значения, пока отдельные результаты находятся в порядке, общий результат идет до или после всех отдельных бросков (например, вы не можете вывести общий результат в середине бросков), и Вы указываете, какой выходной формат вы используете, и используете его последовательно.
Примеры (значения в скобках приведены для пояснения и не должны быть включены):
Входные данные:
12 5 3 (difficulty successes failures)
Выход:
15 (success, 1-0)
10 (failure, 1-1)
5 (failure, 1-2)
16 (success, 2-2)
12 (success, 3-2)
15 (success, 4-2)
19 (success, 5-2)
True (overall success)
Входные данные:
15 2 3 (difficulty failures successes)
Выход:
0 (overall failure)
15 (success, 1-0)
12 (failure, 1-1)
13 (failure, 1-2)
Входные данные:
5 5 10 (successes failures difficulty)
Выход:
11 (success, 1-0)
5 (failure, 1-1)
20 (critical success)
1 (overall success)
Входные данные:
3 10 3 (failures difficulty successes)
Выход:
12 (success, 1-0)
11 (success, 2-0)
1 (critical failure)
False (overall failure)
правила
- Это код-гольф , поэтому выигрывает самый короткий код в байтах
- Вы должны случайным образом выбрать целое значение от 1 до 20 (включительно) для каждого броска. Каждое значение должно иметь одинаковую вероятность быть выбранным (или максимально приближенным к равному).
the number of successes and failures will both be between 1 and 100, inclusive.
Так что, да, есть вероятность, что один сбой приведет к провалу всего вызова.