added some goals to game

This commit is contained in:
Hope 2025-07-21 19:44:11 -04:00
parent 3d5c2e1d8c
commit 81ad4a3355
3 changed files with 58 additions and 10 deletions

View File

@ -65,24 +65,24 @@ for trial in tqdm(range(trials)):
print(f"All Ones: {successes/trials}") print(f"All Ones: {successes/trials}")
dice = FiveDice() dice = FiveDice()
successes = 0 successes_3 = 0
trials = 1000000 trials_3 = 1000000
for trial in tqdm(range(trials)): for trial in tqdm(range(trials_3)):
dice.roll() dice.roll()
if dice.is_three_of_a_kind(): if dice.is_three_of_a_kind():
successes += 1 successes_3 += 1
print(f"Three of a Kind: {successes/trials}") print(f"Three of a Kind: {successes_3/trials_3}")
dice = FiveDice() dice = FiveDice()
successes = 0 successes_4 = 0
trials = 1000000 trials_4 = 1000000
for trial in tqdm(range(trials)): for trial in tqdm(range(trials_4)):
dice.roll() dice.roll()
if dice.is_four_of_a_kind(): if dice.is_four_of_a_kind():
successes += 1 successes_4 += 1
print(f"Four of a Kind: {successes/trials}") print(f"Four of a Kind: {successes_4/trials_4}")

View File

@ -3,12 +3,18 @@ from yahtzee_goals import (
GoalOnes, GoalOnes,
GoalTwos, GoalTwos,
GoalThrees, GoalThrees,
GoalFours,
GoalFives,
GoalSixes
) )
goals = [ goals = [
GoalOnes(), GoalOnes(),
GoalTwos(), GoalTwos(),
GoalThrees(), GoalThrees(),
GoalFours(),
GoalFives(),
GoalSixes()
] ]
game = Yahtzee(goals) game = Yahtzee(goals)

View File

@ -40,3 +40,45 @@ class GoalThrees:
if die.face == 3: if die.face == 3:
total += 3 total += 3
return total return total
class GoalFours:
"Four points for each four"
def prompt(self, dice):
potential_score = self.score(dice)
return f"Fours ({potential_score})"
def score(self, dice):
total = 0
for die in dice:
if die.face == 4:
total += 4
return total
class GoalFives:
"five points for each five"
def prompt(self, dice):
potential_score = self.score(dice)
return f"Fives ({potential_score})"
def score(self, dice):
total = 0
for die in dice:
if die.face == 5:
total += 5
return total
class GoalSixes:
"six points for each Six"
def prompt(self, dice):
potential_score = self.score(dice)
return f"Sixes ({potential_score})"
def score(self, dice):
total = 0
for die in dice:
if die.face == 6:
total += 6
return total