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 count_faces(self): count_ones = 0 count_twos = 0 count_threes = 0 count_fours = 0 count_fives = 0 count_sixes = 0 for face in self.faces(): if face == 1: 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, "sixs": count_sixes} print(counts) return counts def all_ones(self): for face in self.faces(): if face != 1: return False return True def three_of_a_kind(self): counts = {} counts= self.count_faces() for count in counts: if counts >= 3: return True return False def four_of_a_kind(self): counts = {} for face in self.faces(): if face in counts: counts[face] += 1 else: counts[face] = 1 for count in counts.values(): if count >= 4: return True return False dice = FiveDice() successes1 = 0 successes2 = 0 successes3 = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.all_ones(): successes1 += 1 for trial in tqdm(range(trials)): dice.roll() if dice.four_of_a_kind(): successes2 += 1 for trial in tqdm(range(trials)): dice.roll() if dice.four_of_a_kind(): successes3 += 1 print("ones:" + str(successes1/trials)) print("three of a kind:" + str(successes2/trials)) print("four of a kind:" + str(successes3/trials))