from die import Die from tqdm import tqdm from collections import Counter 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): c = Counter(self.faces()) of_a_kind = max(c.values()) if (of_a_kind >= 3): return True else: return False def is_four_of_a_kind(self): c = Counter(self.faces()) of_a_kind = max(c.values()) if (of_a_kind >= 4): return True else: return False dice = FiveDice() successes_3 = 0 trials_3 = 1000000 for trial in tqdm(range(trials_3)): dice.roll() if dice.is_three_of_a_kind(): successes_3 += 1 print(successes_3/trials_3) successes_4 = 0 trials_4 = 1000000 for trial in tqdm(range(trials_4)): dice.roll() if dice.is_four_of_a_kind(): successes_4 += 1 print(successes_4/trials_4) test_dice = FiveDice() counter = Counter(test_dice.faces()) print(counter.keys())