class Yahtzee: @staticmethod def chance(d1, d2, d3, d4, d5): total = 0 total += d1 total += d2 total += d3 total += d4 total += d5 return total @staticmethod def yahtzee(dice): counts = [0]*(len(dice)+1) for die in dice: counts[die-1] += 1 for i in range(len(counts)): if counts[i] == 5: return 50 return 0 @staticmethod def ones( d1, d2, d3, d4, d5): sum = 0 if (d1 == 1): sum += 1 if (d2 == 1): sum += 1 if (d3 == 1): sum += 1 if (d4 == 1): sum += 1 if (d5 == 1): sum += 1 return sum @staticmethod def twos( d1, d2, d3, d4, d5): sum = 0 if (d1 == 2): sum += 2 if (d2 == 2): sum += 2 if (d3 == 2): sum += 2 if (d4 == 2): sum += 2 if (d5 == 2): sum += 2 return sum @staticmethod def threes( d1, d2, d3, d4, d5): s = 0 if (d1 == 3): s += 3 if (d2 == 3): s += 3 if (d3 == 3): s += 3 if (d4 == 3): s += 3 if (d5 == 3): s += 3 return s def __init__(self, d1, d2, d3, d4, _5): self.dice = [0]*5 self.dice[0] = d1 self.dice[1] = d2 self.dice[2] = d3 self.dice[3] = d4 self.dice[4] = _5 def fours(self): sum = 0 for at in range(5): if (self.dice[at] == 4): sum += 4 return sum def fives(self): s = 0 i = 0 for i in range(len(self.dice)): if (self.dice[i] == 5): s = s + 5 return s def sixes(self): sum = 0 for at in range(len(self.dice)): if (self.dice[at] == 6): sum = sum + 6 return sum @staticmethod def score_pair( d1, d2, d3, d4, d5): counts = [0]*6 counts[d1-1] += 1 counts[d2-1] += 1 counts[d3-1] += 1 counts[d4-1] += 1 counts[d5-1] += 1 at = 0 for at in range(6): if (counts[6-at-1] == 2): return (6-at)*2 return 0 @staticmethod def two_pair( d1, d2, d3, d4, d5): counts = [0]*6 counts[d1-1] += 1 counts[d2-1] += 1 counts[d3-1] += 1 counts[d4-1] += 1 counts[d5-1] += 1 n = 0 score = 0 for i in range(6): if (counts[6-i-1] == 2): n = n+1 score += (6-i) if (n == 2): return score * 2 else: return 0 @staticmethod def four_of_a_kind( _1, _2, d3, d4, d5): tallies = [0]*6 tallies[_1-1] += 1 tallies[_2-1] += 1 tallies[d3-1] += 1 tallies[d4-1] += 1 tallies[d5-1] += 1 for i in range(6): if (tallies[i] == 4): return (i+1) * 4 return 0 @staticmethod def three_of_a_kind( d1, d2, d3, d4, d5): t = [0]*6 t[d1-1] += 1 t[d2-1] += 1 t[d3-1] += 1 t[d4-1] += 1 t[d5-1] += 1 for i in range(6): if (t[i] == 3): return (i+1) * 3 return 0 @staticmethod def smallStraight( d1, d2, d3, d4, d5): tallies = [0]*6 tallies[d1-1] += 1 tallies[d2-1] += 1 tallies[d3-1] += 1 tallies[d4-1] += 1 tallies[d5-1] += 1 if (tallies[0] == 1 and tallies[1] == 1 and tallies[2] == 1 and tallies[3] == 1 and tallies[4] == 1): return 15 return 0 @staticmethod def largeStraight( d1, d2, d3, d4, d5): tallies = [0]*6 tallies[d1-1] += 1 tallies[d2-1] += 1 tallies[d3-1] += 1 tallies[d4-1] += 1 tallies[d5-1] += 1 if (tallies[1] == 1 and tallies[2] == 1 and tallies[3] == 1 and tallies[4] == 1 and tallies[5] == 1): return 20 return 0 @staticmethod def fullHouse( d1, d2, d3, d4, d5): tallies = [] _2 = False i = 0 _2_at = 0 _3 = False _3_at = 0 tallies = [0]*6 tallies[d1-1] += 1 tallies[d2-1] += 1 tallies[d3-1] += 1 tallies[d4-1] += 1 tallies[d5-1] += 1 for i in range(6): if (tallies[i] == 2): _2 = True _2_at = i+1 for i in range(6): if (tallies[i] == 3): _3 = True _3_at = i+1 if (_2 and _3): return _2_at * 2 + _3_at * 3 else: return 0