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 check_three_of_a_kind(self): """Check if there is a three-of-a-kind and add to score.""" counts = {face: self.faces().count(face) for face in set(self.faces())} if any(count >= 3 for count in counts.values()): self.score += 1 # Add 1 to score if 3+ of the same value def value_count(self): #will count how many of each kind of dice and return a list of how many of each value 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, "sixes": count_sixes} # print (counts) return counts dice = FiveDice() successes = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.all_ones(): successes += 1 print(successes/trials) successes2 = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.check_three_of_a_kind(): successes2 += 1 print(successes2/trials)