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): of_each_counter={1:0, 2:0, 3:0, 4:0, 5:0, 6:0} for face in self.faces(): of_each_counter[face]=of_each_counter[face]+1 for num_of in of_each_counter.values(): if num_of>=3: return True return False def is_four_of_a_kind(self): of_each_counter={1:0, 2:0, 3:0, 4:0, 5:0, 6:0} for face in self.faces(): of_each_counter[face]=of_each_counter[face]+1 for num_of in of_each_counter.values(): if num_of>=4: return True return False dice = FiveDice() ''' successes = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.all_ones(): successes += 1 print('all ones odds') print(successes/trials) print('_'*80) successes = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.is_three_of_a_kind(): successes += 1 print('three of a kind odds') print(successes/trials) print('_'*80) successes = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.is_four_of_a_kind(): successes += 1 print('four of a kind odds') print(successes/trials) print('_'*80) '''