diff --git a/dice_stats.py b/dice_stats.py index 83a99cb..5b0faa8 100644 --- a/dice_stats.py +++ b/dice_stats.py @@ -13,21 +13,86 @@ class FiveDice: def faces(self): return [die.face for die in self.dice] + def count_faces(self): + 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, + "sixs": count_sixes} + print(counts) + return counts + def all_ones(self): for face in self.faces(): if face != 1: return False return True + def three_of_a_kind(self): + counts = {} + counts= self.count_faces() + for count in counts: + if counts >= 3: + return True + return False + + def four_of_a_kind(self): + counts = {} + for face in self.faces(): + if face in counts: + counts[face] += 1 + else: + counts[face] = 1 + for count in counts.values(): + if count >= 4: + return True + return False + + + + dice = FiveDice() -successes = 0 +successes1 = 0 +successes2 = 0 +successes3 = 0 trials = 1000000 for trial in tqdm(range(trials)): dice.roll() if dice.all_ones(): - successes += 1 + successes1 += 1 -print(successes/trials) - +for trial in tqdm(range(trials)): + dice.roll() + if dice.four_of_a_kind(): + successes2 += 1 +for trial in tqdm(range(trials)): + dice.roll() + if dice.four_of_a_kind(): + successes3 += 1 +print("ones:" + str(successes1/trials)) +print("three of a kind:" + str(successes2/trials)) +print("four of a kind:" + str(successes3/trials)) +