Votre tâche consiste à résumer et à générer le score d'un joueur dans une partie de bowling à 10 quilles après 21 lancers maximum .
Les rouleaux sont représentés comme une séquence d'entiers dans votre méthode de saisie préférée . Chaque entier correspond au nombre de broches qui ont été renversées dans ce rouleau.
Notation
Après chaque tour, le nombre de quilles renversées dans ce tour est compté dans le score final. Si un joueur renverse les dix quilles dans le premier jet d'un tour, c'est une grève et le tour est terminé. Sinon, la manche dure encore un jet. Si le deuxième rouleau d'un tour abat toutes les broches restantes, c'est une pièce de rechange .
Pour chaque coup, il y a un bonus égal à la somme des quilles renversées dans les deux rouleaux suivants. Pour chaque pièce de rechange, il y a un bonus égal au nombre de quilles renversées au prochain lancer.
Au 10e et dernier tour, le joueur peut obtenir des rouleaux supplémentaires: En cas de grève, le joueur obtient deux rouleaux supplémentaires pour compenser son bonus de grève. En cas de réserve, le joueur obtient un jet de plus.
Exemples
Input: 4 3 8 2 7 1 10 7 3 0 10 2 2 10 10 5 4
Output: 131
Input: 10 10 9 1 7 3 2 7 10 1 9 10 7 1 10 10 10
Output: 183
Règles
- Vous pouvez supposer que l'entrée est valide.
- Selon le commentaire de Mego, j'ai assoupli les exigences relatives aux méthodes d'entrée / sortie pour répondre à notre norme actuelle .
- Les réponses dans des langues plus récentes que le défi sont autorisées
- Le code le plus court gagne!
space separated integers
?