Muchas personas han ido a su centro de boliche local para jugar algunos juegos de bolos, y muchas personas continúan luchando para calcular sus puntajes. World Bowling ha introducido un sistema de puntuación simplificado para atraer a más personas al deporte. Este sistema de puntuación se utiliza en juegos internacionales.
El sistema de puntuación funciona así (de Wikipedia ):
El sistema de puntuación World Bowling, descrito como "puntuación de cuadro actual" [32], otorga los pines de la siguiente manera:
- Huelga: 30 (independientemente de los resultados de las tiradas posteriores)
- repuesto: más de 10 pinfall en el primer rollo del cuadro actual
- abierto: pinfall total para el marco actual
Si no está familiarizado con los bolos, aquí hay un resumen.
Hay 10 pines al final de una pista de bolos donde el objetivo es derribarlos a todos con una bola de boliche. Obtienes 2 lanzamientos de una bola para intentar derribarlos a todos, preferiblemente derribándolos a todos con el primer lanzamiento (conocido como strike ). Si recibe un golpe, entonces ese marco se completa y no necesita rodar la pelota por segunda vez. Una huelga vale 30.
Si no derribas los diez, obtienes un rollo más. Si derriba todos los pines restantes, eso se conoce como repuesto . El puntaje vale 10 pines + el número de pines derribados en el primer lanzamiento. Por ejemplo, si derribo 7 pines y luego logro derribar los 3 restantes, eso valdría 17.
Si después de su segundo lanzamiento no logra derribar los diez, eso se conoce como un marco abierto . La puntuación vale el número total de pines derribados para ese marco.
Hay 10 cuadros en un juego . Si estás familiarizado con la puntuación tradicional de bolos, no obtienes una tirada extra en el décimo cuadro con la Puntuación Mundial de Bolos. En la puntuación de bolos tradicional, se necesitan 12 golpes consecutivos para obtener una puntuación perfecta de 300, mientras que la puntuación de Bowling Mundial solo requiere 10 golpes consecutivos.
Reto
Su desafío es calcular el puntaje dado los valores de una hoja de puntaje.
En una hoja de puntaje, un error se indica con un guión ( - ), un golpe con una X y un repuesto con una barra ( / ). Si no se aplican, el recuento de pinfall simplemente se indica con un número (1-9). Las faltas y las divisiones también se registran en las hojas de puntuación, pero no necesita preocuparse por ellas.
Entrada
Se le dará una cadena que consta de puntajes para cada cuadro, y tendrá un total de diez cuadros. Cada cuadro tendrá hasta dos valores, o tan solo 1 valor si hubo una huelga. Su entrada puede ser un parámetro de cadena para una función, leer desde un archivo o desde STDIN.
Por ejemplo, si derribo 1 pin en mi primer rollo, luego derribo 2, el marco se vería como "12". Esto no significa 12 (doce), sino que significa 1 y 2, para un total de 3.
Si me perdiera cada pin con ambos rollos (bolas de canaleta), se vería así "-" (puntaje de 0).
Cada cuadro estará separado por un espacio.
Entrada de muestra
-- 9- -9 X -/ 8/ 71 15 44 X
Para desglosar este ejemplo,
- Cuadro 1 (-) - fallan ambos rollos. anotó 0
- Cuadro 2 (9-): derribó 9 en el primer lanzamiento, falló en el segundo lanzamiento. Puntuación 9
- Cuadro 3 (-9): se perdió todo en el primero, obtuvo 9 en el segundo. Puntuación 9
- Cuadro 4 (X) - Golpe, derribado los diez. Puntuación 30
- Cuadro 5 (- /) - Repuesto, se perdió todo en el primero, derribó a todos con el segundo lanzamiento. Puntuación 10 + 0 = 10
- Marco 6 (8 /) - Repuesto, 8 pines en el primer rollo, derribó a los otros 2 con el segundo rollo. Puntuación 10 + 8 = 18
- Marco 7 (71): marco abierto, 7 pines en el primer rollo, 1 pin en el segundo rollo. Puntuación 7 + 1 = 8
- Los cuadros 8, 9, 10 siguen los mismos ejemplos que anteriormente.
Salida
La salida será simplemente un valor que tenga la suma de las puntuaciones de los 10 fotogramas. Usando la entrada de muestra, la salida será 128. Su salida puede ser una cadena o un tipo numérico. Puede ser un valor de retorno de función, o escrito en STDOUT.
Reglas
- Suponga que la entrada siempre será válida. Por ejemplo, un marco inválido sería "/ 8", "XX", "123", "0", etc.
- No necesita preocuparse por divisiones o faltas.
- Su código puede ser un programa completo o una función que toma una cadena y devuelve el puntaje.
- Su código no debe arrojar ninguna excepción.
- Este es el código de golf, la respuesta con el menor número de bytes gana.
- Los idiomas que usan incluye o importa deben incluir las declaraciones de importación como parte de su código y contar para el recuento de bytes.
Casos de prueba
"-- 9- -9 X -/ 8/ 71 15 44 X" -> 128
"-- -1 2- 12 22 5- 42 61 8- 72" -> 45
"X X X 1/ 2/ 3/ 4/ 5/ -- 9/" -> 174
"X X X X X X X X X X" -> 300
"-- -- -- -- -- -- -- -- -- --" -> 0