generated from mwc/lab_dice
Added two goals into yahtzee_goals file.
Checkpoint 3: I think in Units 1 or 2 I wouldn't have had such specific conditions. So OOP helps me target specific goals or problems that I might encounter. I think OOP makes more sense to me than other targeted code we wrote in Unit 1 or 2. I am struggling a little bit to understand creation of "." conditions/actions. Otherwise this seems to be a super useful tool to know.
This commit is contained in:
4
play.py
4
play.py
@@ -3,12 +3,16 @@ from yahtzee_goals import (
|
||||
GoalOnes,
|
||||
GoalTwos,
|
||||
GoalThrees,
|
||||
GoalFours,
|
||||
LargeStraight
|
||||
)
|
||||
|
||||
goals = [
|
||||
GoalOnes(),
|
||||
GoalTwos(),
|
||||
GoalThrees(),
|
||||
GoalFours(),
|
||||
LargeStraight(),
|
||||
]
|
||||
|
||||
game = Yahtzee(goals)
|
||||
|
||||
@@ -40,3 +40,29 @@ 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 LargeStraight:
|
||||
"Fourty points for 5 sequential dice"
|
||||
|
||||
def prompt(self, dice):
|
||||
potential_score = self.score(dice)
|
||||
return f"Large Straight ({potential_score})"
|
||||
def score(self,dice):
|
||||
total = 0
|
||||
faces = [die.face for die in dice]
|
||||
if faces == [1,2,3,4,5] or faces == [2,3,4,5,6]:
|
||||
total = 40
|
||||
return total
|
||||
|
||||
|
||||
Reference in New Issue
Block a user