From 9d2a0ee0d2fec88189a6666030acb6855162fabc Mon Sep 17 00:00:00 2001 From: erbrown Date: Sun, 14 Dec 2025 20:01:08 -0500 Subject: [PATCH] While working with Yahtzee it was a overall game and everything was build on from one another. Each goal is its own class and knowns hwo to score. I like how I am able to create new classes like the ones for the game without having the change the whole code like other codes. Add the new classes did not change the game it just added to it. This is different with Unit 1 and 2 because if you are to add some code or change it it can alter the whole thing to be complete different. --- play.py | 6 ++++++ yahtzee_goals.py | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/play.py b/play.py index 773f7f3..814e2d3 100644 --- a/play.py +++ b/play.py @@ -3,12 +3,18 @@ from yahtzee_goals import ( GoalOnes, GoalTwos, GoalThrees, + GoalFours, + GoalFives, + GoalSixes, ) goals = [ GoalOnes(), GoalTwos(), GoalThrees(), + GoalFours(), + GoalFives(), + GoalSixes(), ] game = Yahtzee(goals) diff --git a/yahtzee_goals.py b/yahtzee_goals.py index 10af574..01f9afd 100644 --- a/yahtzee_goals.py +++ b/yahtzee_goals.py @@ -40,3 +40,43 @@ class GoalThrees: if die.face == 3: total += 3 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 +