Моделирование
бросков кубиков в Pygal
329
Метод
roll()
использует функцию
randint()
для получения случайного числа
в диапазоне от 1 до количества граней
. Функция
может вернуть начальное зна-
чение
, конечное значение (
num_sides
) или любое целое число в этом диапазоне.
Бросок кубика
Прежде чем строить визуализацию на основе этого класса, бросим кубик D6, вы-
ведем
результаты и убедимся в том, что они выглядят разумно:
die_visual.py
from die import Die
# Создание кубика D6.
die = Die()
# Моделирование серии бросков с сохранением результатов в списке.
results = []
for roll_num in range(100):
result = die.roll()
results.append(result)
print(results)
В точке
создается экземпляр
Die
с шестью гранями по умолчанию. В точке
моделируются 100 бросков кубика, а результат каждого броска сохраняется в спи-
ске
results
. Выборка выглядит примерно так:
[4, 6, 5, 6, 1, 5, 6, 3, 5, 3, 5, 3, 2, 2, 1, 3, 1, 5, 3, 6, 3, 6, 5, 4,
1, 1, 4, 2, 3, 6, 4, 2, 6, 4, 1, 3, 2, 5, 6, 3, 6, 2, 1, 1, 3, 4, 1, 4,
3, 5, 1, 4, 5, 5, 2, 3, 3, 1, 2, 3, 5, 6, 2, 5, 6, 1, 3, 2, 1, 1, 1, 6,
5, 5, 2, 2, 6, 4, 1, 4, 5, 1, 1, 1, 4, 5, 3, 3, 1, 3, 5, 4, 5, 6, 5, 4,
1, 5, 1, 2]
Беглое знакомство с результатами показывает, что класс
Die
работает. В результа-
тах встречаются граничные значения 1 и 6, то есть модель возвращает наименьшее
и наибольшее возможное значение; значения 0 и 7 не встречаются, а значит, все
результаты лежат в диапазоне допустимых значений. Также в выборке встречаются
все числа от 1 до 6, то есть представлены все возможные результаты.
Анализ
результатов
Чтобы проанализировать результаты бросков одного кубика D6, мы подсчитаем,
сколько раз выпадало каждое число:
die_visual.py
...
# Моделирование серии бросков с сохранением результатов в списке.
results = []
for roll_num in range(1000):
result = die.roll()
results.append(result)