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 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 def all_ones(self): value_count = self.value_count() #print (value_count) #print(value_count["ones"]) if value_count["ones"] < 5: return False return True def is_three_of_a_kind(self): #set current roll of 5 dice to a list variable dice value_count = None value_count = self.value_count() for value in value_count.values(): if value > 3: return True else: return False def is_four_of_a_kind(self): #set current roll of 5 dice to a list variable dice value_count = None value_count = self.value_count() for value in value_count.values(): if value > 4: 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(f"All Ones: {successes/trials}") 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(f"Three of a Kind: {successes_3/trials_3}") dice = FiveDice() 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(f"Four of a Kind: {successes_4/trials_4}")