Beaucoup de gens sont allés à leur centre de bowling local pour jouer quelques parties de bowling, et beaucoup de gens continuent à avoir du mal à calculer leurs scores. Le World Bowling a introduit un système de notation simplifié afin d'attirer plus de gens dans ce sport. Ce système de notation est utilisé dans les jeux internationaux.
Le système de notation fonctionne comme ceci (de Wikipedia ):
Le système de notation du World Bowling - décrit comme la "notation de la trame actuelle" [32] - garantit les broches comme suit:
- grève: 30 (indépendamment des résultats des rôles suivants)
- de rechange: 10 plus de chutes au premier rouleau du cadre actuel
- ouvert: chute totale pour l'image actuelle
Si vous n'êtes pas familier avec le bowling à dix quilles, voici un récapitulatif.
Il y a 10 quilles à la fin d'une piste de bowling où le but est de les abattre toutes avec une boule de bowling. Vous obtenez 2 rouleaux d'une balle pour tenter de les faire tomber, de préférence en les renversant tous avec le premier lancer (connu sous le nom de frappe ). Si vous obtenez un coup, ce cadre est terminé et vous n'avez pas besoin de faire rouler la balle une deuxième fois. Une grève vaut 30.
Si vous ne renversez pas les dix, vous obtenez un autre jet. Si vous abattez toutes les broches restantes, cela s'appelle une pièce de rechange . Le score vaut 10 quilles + le nombre de quilles renversées au premier lancer. Par exemple, si j'ai abattu 7 broches, puis réussi à abattre les 3 restantes, cela vaudrait 17.
Si après votre deuxième lancer, vous ne parvenez pas à abattre les dix, cela s'appelle un cadre ouvert . Le score vaut le nombre total de broches renversées pour cette image.
Il y a 10 images dans un jeu . Si vous êtes familier avec le score de bowling traditionnel, vous n'obtenez pas de jet supplémentaire dans le 10ème cadre avec le World Bowling Scoring. Dans le classement traditionnel des quilles, il faut 12 frappes consécutives pour obtenir un score parfait de 300, tandis que la notation du World Bowling ne nécessite que 10 frappes consécutives.
Défi
Votre défi consiste à calculer le score donné à partir d'une feuille de score.
Sur une feuille de match, un échec est indiqué par un tiret ( - ), une frappe avec un X et un remplaçant avec une barre oblique ( / ). Si ceux-ci ne s'appliquent pas, le nombre de chutes est simplement indiqué par un nombre (1-9). Les fautes et les écarts sont également enregistrés sur les feuilles de score, mais vous n'avez pas à vous en préoccuper.
Contribution
Vous recevrez une chaîne composée de scores pour chaque image, et vous aurez un total de dix images. Chaque trame aura jusqu'à deux valeurs, ou aussi peu qu'une valeur s'il y a eu une grève. Votre entrée peut être un paramètre de chaîne d'une fonction, lu à partir d'un fichier ou de STDIN.
Par exemple, si j'ai abattu 1 broche sur mon premier rouleau, puis abattu 2, le cadre ressemblerait à "12". Cela ne signifie pas 12 (douze), mais signifie 1 et 2, pour un total de 3.
Si je manquais chaque épingle avec les deux rouleaux (boules de gouttière), cela ressemblerait à ceci "-" (score de 0).
Chaque cadre sera séparé par un espace.
Exemple d'entrée
-- 9- -9 X -/ 8/ 71 15 44 X
Pour décomposer cet exemple,
- Image 1 (-) - les deux rouleaux manqués. marqué 0
- Image 2 (9-) - renversé 9 sur le premier rouleau, raté sur le deuxième rouleau. Score 9
- Frame 3 (-9) - Tout manqué sur le premier, obtenu 9 sur le second. Score 9
- Frame 4 (X) - Strike, renversé tous les dix. Score 30
- Frame 5 (- /) - Spare, a tout raté le premier, a tout renversé avec le 2e lancer. Score 10 + 0 = 10
- Cadre 6 (8 /) - Rechange, 8 broches sur le premier rouleau, renversé les 2 autres avec le deuxième rouleau. Score 10 + 8 = 18
- Cadre 7 (71) - cadre ouvert, 7 broches sur le premier rouleau, 1 broche sur le deuxième rouleau. Score 7 + 1 = 8
- Les cadres 8, 9, 10 suivent les mêmes exemples que ci-dessus.
Production
La sortie sera simplement une valeur qui a la somme des scores des 10 images. En utilisant l'exemple d'entrée, la sortie sera 128. Votre sortie peut être une chaîne ou un type numérique. Il peut s'agir d'une valeur de retour de fonction ou écrite dans STDOUT.
Règles
- Supposons que l'entrée sera toujours valide. Par exemple, une trame non valide serait "/ 8", "XX", "123", "0", etc.
- Vous n'avez pas à vous soucier des écarts ou des fautes.
- Votre code peut être un programme complet ou une fonction qui prend une chaîne et renvoie le score.
- Votre code ne doit lever aucune exception.
- C'est le golf de code, la réponse avec le moins de victoires d'octets.
- Les langues qui utilisent des inclusions ou des importations doivent inclure les instructions d'importation dans leur code et compter dans le nombre d'octets.
Cas de test
"-- 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