Многие люди пошли в свой местный боулинг-центр, чтобы поиграть в несколько игр в боулинг, и многие продолжают бороться, чтобы подсчитать свои очки. World Bowling ввел упрощенную систему подсчета очков, чтобы привлечь больше людей к спорту. Эта система начисления очков используется в международных играх.
Система подсчета очков работает следующим образом (из Википедии ):
Система подсчета очков World Bowling, описываемая как «текущий подсчет кадров» [32], предусматривает следующие выводы:
- Удар: 30 (независимо от результатов последующих бросков)
- запасной: 10 плюс штырь на первом броске текущего кадра
- open: общее количество ошибок для текущего кадра
Если вы не знакомы с боулингом с десятью булавками, вот резюме.
В конце дорожки для боулинга есть 10 кеглей, цель которых - сбить их всех шаром для боулинга. Вы получаете 2 броска шара, чтобы попытаться сбить их всех с ног, предпочтительно сбить их всех с первого броска (известный как удар ). Если вы получили удар, то этот кадр завершен, и вам не нужно катать мяч во второй раз. Удар стоит 30.
Если не сбить все десять, вы получите еще один бросок. Если вы сбиваете все оставшиеся булавки, это называется запасным . Счет стоит 10 пинов + количество пинов, сбитых при первом броске. Например, если я сбил 7 пинов, то сумел сбить оставшиеся 3, это стоило бы 17.
Если после второго броска вам не удастся сбить все десять, это называется открытой рамой . Оценка соответствует общему количеству пинов, сбитых за этот кадр.
В игре 10 кадров . Если вы знакомы с традиционным боулингом, вы не получите дополнительный бросок в 10-м кадре с World Bowling Scoring. При традиционном подсчете боулинга для достижения идеального результата в 300 ударов требуется 12 ударов подряд, тогда как для подсчета очков в боулинге мира требуется всего 10 ударов подряд.
Вызов
Ваша задача состоит в том, чтобы вычислить заданные значения баллов из таблицы результатов.
На оценочном листе промах обозначается тире ( - ), ударом с X и запасным с косой чертой ( / ). Если это не применимо, то количество выпадений просто указывается числом (1-9). Фолы и расколы также записываются на листах результатов, но вам не нужно беспокоиться об этом.
вход
Вам будет предоставлена строка, состоящая из баллов за каждый кадр, и в общей сложности будет десять кадров. Каждый кадр будет иметь до двух значений или всего 1 значение, если произошел удар. Ваш ввод может быть строковым параметром для функции, читать из файла или из STDIN.
Например, если я сбил 1 булавку на своем первом броске, а затем сбил 2, рамка будет выглядеть как «12». Это не означает 12 (двенадцать), но означает 1 и 2, всего 3.
Если бы я пропустил каждый штифт с обоими рулонами (желобными шариками), это выглядело бы так: «-» (оценка 0).
Каждый кадр будет разделен пробелом.
Пример ввода
-- 9- -9 X -/ 8/ 71 15 44 X
Чтобы сломать этот пример,
- Кадр 1 (-) - оба рулона пропущены. набрал 0
- Кадр 2 (9-) - сбил 9 на первом броске, пропустил на втором броске. Оценка 9
- Кадр 3 (-9) - пропустил всех на первом, получил 9 на втором. Оценка 9
- Кадр 4 (X) - Ударь, сбил все десять. Оценка 30
- Кадр 5 (- /) - Запасной, пропустил все по первому, сбил все со 2-го броска. Оценка 10 + 0 = 10
- Кадр 6 (8 /) - Запасной, 8 штифтов на первом броске, сбил 2 других с помощью второго броска. Оценка 10 + 8 = 18
- Рама 7 (71) - открытая рама, 7 штифтов на первом рулоне, 1 штифт на втором рулоне. Счет 7 + 1 = 8
- Кадры 8, 9, 10 следуют тем же примерам, что и выше.
Выход
Выводом будет просто значение, которое имеет сумму баллов по всем 10 кадрам. Используя пример ввода, выведите 128. Ваш вывод может быть строковым или числовым типом. Это может быть возвращаемое значение функции или записанное в STDOUT.
правила
- Предположим, что ввод всегда будет действительным. Например, недопустимый кадр будет "/ 8", "XX", "123", "0" и т. Д.
- Вам не нужно беспокоиться о расколах или фолах.
- Ваш код может быть полной программой или функцией, которая принимает строку и возвращает результат.
- Ваш код не должен выдавать никаких исключений.
- Это код гольф, ответ с наименьшим количеством выигранных байтов.
- Языки, которые используют, включают или импортируют, должны включать операторы импорта как часть своего кода и подсчитывать количество байтов.
Тестовые случаи
"-- 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