For this last checkpoint, what I did was add a few goals and changed play.py and yahtzee_goals.py by adding the goals I selected.

Checkpoint 3:

While working on Yahtzee, I got to experience Object-Oriented Programming (OOP) by writing classes that represented different parts of the game,
such as dice, goals, and the overall Yahtzee game itself. Each class had its own attributes and methods, which made the program easier to
organize and understand. For example, the Die class handled rolling and showing values, while the Yahtzee class managed turns, scoring, and
game flow. This style of problem-solving is different from the skills in Unit 1 and 2 was mainly focused more on functions and variables whereas in
Unit 3 I was able to write out classes with OOP where each class handles its own part of the game. This ultimately makes it easier to make changes,
fix bugs, and add new features later on.
This commit is contained in:
angelotr
2025-11-12 00:15:13 -05:00
parent d4f0f50c60
commit 04803f0e3a
2 changed files with 45 additions and 0 deletions

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,42 @@ 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