diff --git a/__pycache__/dice_stats.cpython-310.pyc b/__pycache__/dice_stats.cpython-310.pyc new file mode 100644 index 0000000..1335337 Binary files /dev/null and b/__pycache__/dice_stats.cpython-310.pyc differ diff --git a/__pycache__/die.cpython-310.pyc b/__pycache__/die.cpython-310.pyc new file mode 100644 index 0000000..d58064b Binary files /dev/null and b/__pycache__/die.cpython-310.pyc differ diff --git a/dice_stats.py b/dice_stats.py index 83a99cb..e77caa3 100644 --- a/dice_stats.py +++ b/dice_stats.py @@ -12,22 +12,59 @@ class FiveDice: 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)