generated from mwc/lab_dice
Checkpoint 1: You could use classes when coding something that uses multiple functions. For example, any game with multiple players could be made with classes.
63 lines
1.3 KiB
Python
63 lines
1.3 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 is_three_of_a_kind(self):
|
|
for face in self.faces():
|
|
if face != face != face:
|
|
return False
|
|
return True
|
|
|
|
def is_four_of_a_kind(self):
|
|
for face in self.faces():
|
|
if face != face != face != face:
|
|
return False
|
|
return True
|
|
|
|
dice = FiveDice()
|
|
successes = 0
|
|
trials = 1000000
|
|
for trial in tqdm(range(trials)):
|
|
dice.roll()
|
|
if dice.is_three_of_a_kind():
|
|
successes += 1
|
|
print(successes/trials)
|
|
|
|
dice = FiveDice()
|
|
successes = 0
|
|
trials = 1000000
|
|
for trial in tqdm(range(trials)):
|
|
dice.roll()
|
|
if dice.is_four_of_a_kind():
|
|
successes += 1
|
|
print(successes/trials)
|
|
|
|
dice = FiveDice()
|
|
successes = 0
|
|
trials = 1000000
|
|
for trial in tqdm(range(trials)):
|
|
dice.roll()
|
|
if dice.all_ones():
|
|
successes += 1
|
|
print(successes/trials)
|
|
|
|
|
|
|