Мне говорят, что кто-то, играющий в Dungeons and Dragons (D & D), бросает честный кубик со значениями 1-20 (одно значение на сторону), и что в зависимости от персонажа, я полагаю, есть модификатор для каждого действия, которое персонаж может совершить,В этом случае модификатор 11 для открытия двери. Если бросок кубика + модификатор больше 15, действие будет успешным, и если персонаж не откроет дверь, действие завершится неудачей. В этой части вопроса мы хотим сделать массив из семи бросков костей и счета для этого персонажа с модификатором 11.
Это то, что я пробовал до сих пор
import numpy as np
from datascience import *
modifier = 11
possible_rolls = np.arange(20)
roll_result = np.random.choice(possible_rolls)
modified_result = roll_result + modifier
num_observations = 7
def simulate_observations():
"""Produces an array of 7 simulated modified die rolls"""
possible_rolls = np.arange(20)
roll_result = np.random.choice(possible_rolls)
modified_result = roll_result + modifier
array = make_array()
for i in np.arange(num_observations):
array = np.append(array, modified_result)
return array
observation_array = simulate_observations()
print(observation_array)
Я ожидаю получить различный диапазон выходных данных, основанный на случайном броске костей, и затем добавив это значение в модификатор, а затем, наконец, поместив это окончательное значение в массив с именем array
, но все, что я получаю, это массивэто выглядит как [20.,20.,20.,20.,20.,20.,20.]
. Любые идеи относительно того, где я могу быть? Я на 90% уверен, что моя проблема в моем цикле for, поскольку я не совсем понял, что именно я делаю в них, но я не могу точно определить, в чем проблема.