## Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

### Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

###### prateekparekh

12,895 Points# Challenge score_yatzy

if there is a yatzy (5 dices with the same number), then length of one of these lists would be 5. What am I missing here?

```
def score_yatzy(self, hand):
if 5 in {len(hand.ones), len(hand.twos), len(hand.threes), len(hand.fours), len(hand.fives), len(hand.sixes)}
return 50
else:
return 0
```

```
class YatzyScoresheet:
def score_ones(self, hand):
return sum(hand.ones)
def score_ones(self, hand):
return sum(hand.ones)
def score_ones(self, hand):
return sum(hand.ones)
def score_ones(self, hand):
return sum(hand.ones)
def score_ones(self, hand):
return sum(hand.ones)
def score_sixes(self, hand):
return sum(hand.sixes)
def _score_set(self, hand, set_size):
scores = [0]
for worth, count in hand._sets.items():
if count == set_size:
scores.append(worth*set_size)
return max(scores)
def score_one_pair(self, hand):
return self._score_set(hand, 2)
def score_chance(self, hand):
return sum(hand.ones) + sum(hand.twos) + sum(hand.threes) + sum(hand.fours) + sum(hand.fives) + sum(hand.sixes)
def score_yatzy(self, hand):
if 5 in {len(hand.ones), len(hand.twos), len(hand.threes), len(hand.fours), len(hand.fives), len(hand.sixes)}
return 50
else:
return 0
```

## 4 Answers

###### billy mercier

6,259 PointsHope this helps, make sure you understand!

```
def score_yatzy(self, hand):
dicelist = [] #a list to append same value dice
for dice in hand: #looping through to check all dice
dicelist.append(dice)
if dices == hand[0]: #you need to compare all dice
dicelist.append(dice) #only append in list if they are the same
if len(dicelist) == 5: #if that list gets 5 dice of same value = yatzy
return 50
else: #if any of those dice didn't have the same value as hand[0] != yatzy
return 0
```

###### cb123

Courses Plus Student 9,858 PointsAnother option is to review what the _score_set method was doing and borrow that approach. Within that function there is hand._sets.items() which has captured a dictionary of the dice rolls and their associated counts and which we can loop through to find a count of 5.

```
def score_yatzy(self, hand):
for worth, count in hand._sets.items():
if count == 5:
return 50
return 0
```

Hopefully this helps in seeing the solution in a different way.

###### Oluwatominiyin Adebanjo

3,223 PointsAnother solution

```
def score_yatzy(self, hand):
for die in hand:
if hand.count(die) >= 5:
return 50
return 0
```

###### Adam Kielar

**Python Web Development**Techdegree Graduate 13,818 Points

Here is my solution: ''' def score_yatzy(self, hand): if hand[1:] == hand[:-1]: return 50 else: return 0 '''

## prateekparekh

12,895 Points## prateekparekh

12,895 PointsWhy are you appending twice? dicelist.append(dice)

Is that a typo?