diff --git a/dice_stats.py b/dice_stats.py index 83a99cb..ec1d09f 100644 --- a/dice_stats.py +++ b/dice_stats.py @@ -18,6 +18,31 @@ class FiveDice: if face != 1: return False return True + + def three_of_a_kind(self): + face_counts = {} + for face in self.faces(): + if face in face_counts: + face_counts[face] += 1 + else: + face_counts[face] = 1 + for count in face_counts.values(): + if count >= 3: + return True + return False + + def four_of_a_kind(self): + face_counts = {} + for face in self.faces(): + if face in face_counts: + face_counts[face] += 1 + else: + face_counts[face] = 1 + for count in face_counts.values(): + if count >= 4: + return True + return False + dice = FiveDice() successes = 0 @@ -27,7 +52,24 @@ for trial in tqdm(range(trials)): if dice.all_ones(): successes += 1 -print(successes/trials) - +print(f"all ones + {successes/trials}") + +three_of_a_kind_successes = 0 +four_of_a_kind_successes = 0 + +for trial in tqdm(range(trials)): + dice.roll() + if dice.three_of_a_kind(): + three_of_a_kind_successes += 1 + +print(f"three of a kind: {three_of_a_kind_successes / trials}") + +for trial in tqdm(range(trials)): + dice.roll() + if dice.four_of_a_kind(): + four_of_a_kind_successes += 1 + +print(f"four of a kind: {four_of_a_kind_successes / trials}") +