die.py
from random import randint
class Die():
"""表示一个骰子的类"""
def __init__(self, num_sides = 6):
"""骰子默认是6个面"""
self.num_sides = num_sides
def roll(self):
"""返回一个位于1和骰子面数之间的随机值"""
return randint(1,self.num_sides)
die_visual.py
from die import Die
import pygal
#创建一个D6
die_1 = Die()
die_2 = Die()
#掷几次骰子,并将结果存储在一个列表中
results = []
for roll_num in range(1000):
result = die_1.roll()+die_2.roll()
results.append(result)
print(results)
#结果分析
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2,max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
print(frequencies)
hist = pygal.Bar()
hist.title = "Results of rolling two D6 1000 times"
hist.x_labels = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
hist.x_title = 'Result'
hist.y_title = 'Frequency of Result'
hist.add("D6 + D6",frequencies)
hist.render_to_file('die_visual.svg')
different_die.py
from die import Die
import pygal
#创建一个D6一个D10
die_1 = Die()
die_2 = Die(10)
#掷几次骰子,并将结果存储在一个列表中
results = []
for roll_num in range(5000):
result = die_1.roll()+die_2.roll()
results.append(result)
#print(results)
#结果分析
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(2,max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
#print(frequencies)
hist = pygal.Bar()
hist.title = "Results of rolling a D6 and a D10 5000 times"
hist.x_labels = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
'13', '14', '15', '16']
hist.x_title = 'Result'
hist.y_title = 'Frequency of Result'
hist.add("D6 + D10",frequencies)
hist.render_to_file('dif_die_visual.svg')