Files
lab_dice/dice_stats.py
2025-11-17 09:51:20 -05:00

88 lines
1.7 KiB
Python

from die import Die
from tqdm import tqdm
class FiveDice:
def __init__(self):
self.dice = [Die() for number in range(5)]
def roll(self):
for die in self.dice:
die.roll()
return self.faces()
def faces(self):
return [die.face for die in self.dice]
def all_ones(self):
for face in self.faces():
if face != 1:
return False
return True
def value_count(self):
count_ones = 0
count_twos = 0
count_threes = 0
count_fours = 0
count_fives = 0
count_sixes = 0
for face in self.faces():
count_ones+=1
if face == 2:
count_twos+=1
if face == 3:
count_threes+=1
if face == 4:
count_fours+=1
if face == 5:
count_fives+=1
if face == 6:
count_sixes+=1
counts=
'ones':count_ones,
'twos':count_twos,
'threes':count_threes,
'fours':count_fours,
'fives':count_fives,
'sixes':count_sixes,
return counts
def all_ones(self):
value_count = self.value_count()
if value_count['ones'] < 5:
return False
return True
def is_three_of_a_kind(self):
value_count = None
value_count = self.value.count()
for value in value_count.values():
if value >= 3:
return True
else:
return False
dice = FiveDice()
successes = 0
trials = 1000000
for trial in tqdm(range(trials)):
dice.roll()
if dice.all_ones():
successes += 1
print(successes/trials)