Calculadora de puntuación de Yahtzee

En un juego de Yahtzee, el jugador debe obtener puntos lanzando cinco dados e intentando conseguir una combinación específica en cada uno de los trece turnos del juego.

TurnoNombrePuntos
1UnosSuma de todos los dados que muestran 1
2DosesSuma de todos los dados que muestran 2
3TresesSuma de todos los dados que muestran 3
4CuatrosSuma de todos los dados que muestran 4
5CincosSuma de todos los dados que muestran 5
6SeisesSuma de todos los dados que muestran 6
7Tres igualesSuma de todos los dados si hay al menos tres dados iguales
8Cuatro igualesSuma de todos los dados si hay al menos cuatro dados iguales
9Full House25 puntos si hay dos dados de un número y tres dados de otro número
10Escalera menor30 puntos si hay una secuencia de al menos cuatro dados (1,2,3,4 o 2,3,4,5 o 3,4,5,6)
11Escalera mayor40 puntos si hay una secuencia de cinco dados (1,2,3,4,5 o 2,3,4,5,6)
12Yahtzee50 puntos si hay cinco dados iguales
13OportunidadSuma de todos los dados

Si durante un turno los dados lanzados no forman una combinación válida, la puntuación de ese turno será igual a 0. Si el total de puntos obtenidos durante los primeros seis turnos es igual o superior a 63, se añaden 35 puntos adicionales a la puntuación final.

Se te proporciona un arreglo arr que contiene 13 arreglos; cada arreglo representa un conjunto de cinco dados que debes comprobar para determinar la combinación del turno, de acuerdo con el orden y la descripción de la tabla anterior. Debes implementar una función que devuelva un entero correspondiente a la puntuación final obtenida por el jugador.

Ejemplo

yahtzeeScoreCalc([
  [1, 3, 1, 1, 2], // Aces
  [1, 2, 4, 5, 6], // Twos
  [6, 3, 4, 3, 4], // Threes
  [3, 1, 1, 4, 4], // Fours
  [5, 5, 5, 5, 3], // Fives
  [6, 2, 6, 6, 6], // Sixes
  [1, 4, 4, 2, 1], // Three of a Kind
  [3, 3, 3, 3, 3], // Four of a Kind
  [2, 2, 1, 1, 2], // Full House
  [6, 1, 2, 3, 4], // Lower Straight
  [2, 3, 5, 4, 1], // Higher Straight
  [4, 4, 4, 4, 4], // Yahtzee
  [3, 3, 4, 5, 6], // Chance
]) ➞ 279

// Turn 1 ➞ There are 3 dice showing "1" ➞ 3 pts.
// Turn 2 ➞ There is 1 die showing "2" ➞ 2 pts.
// Turn 3 ➞ There are 2 dice showing "3" ➞ 6 pts.
// Turn 4 ➞ There are 2 dice showing "4" ➞ 8 pts.
// Turn 5 ➞ There are 4 dice showing "5" ➞ 20 pts.
// Turn 6 ➞ There are 4 dice showing "6" ➞ 24 pts.
// Turn 7 ➞ There aren't at least 3 dice the same ➞ 0 pts.
// Turn 8 ➞ There are 4 dice the same ➞ 15 pts. (sum of all dice)
// Turn 9 ➞ There is a Full House (two "1" and three "2") ➞ 25 pts.
// Turn 10 ➞ There is a Lower Straight (1,2,3,4) ➞ 30 pts.
// Turn 11 ➞ There is a Higher Straight (1,2,3,4,5) ➞ 40 pts.
// Turn 12 ➞ Yahtzee!!! There are 5 dice the same ➞ 50 pts.
// Turn 13 ➞ Sum of all dice ➞ 21 pts.

// The sum of the points made in the first six turns is:
// 3 + 2 + 6 + 8 + 20 + 24 = 63
// There is a bonus of 35 points
// The sum of the points made in the other seven turns is:
// 0 + 15 + 25 + 30 + 40 + 50 + 21 = 181

// The total is equal to:
// 63 + 35 + 181 = 279

Notas

  • Al jugar para obtener Tres iguales, debes buscar al menos tres dados iguales y no exactamente tres. La misma regla se aplica a la combinación Cuatro iguales y a la combinación Escalera menor (que también es válida si se obtiene mediante una Escalera mayor)
  • Un Full House es válido si se obtiene con una combinación de dos valores diferentes: cinco dados iguales no forman un Full House.
  • Por supuesto, esta es una versión de Yahtzee adaptada para este desafío específico: puedes encontrar las reglas oficiales (y una tabla más clara) en la pestaña Resources.