generated from mwc/lab_dice
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:
6
play.py
6
play.py
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user