Please in order to save solutions and appear on the leaderboards.

Ten-pin Bowling

Details

Given a series of ten-pin bowling scoreboards, determine the final scores based on the traditional scoring method.

A game consists of ten frames. Each frame, players get up to two rolls to knock down all ten pins.

If a player gets a strike in the final frame, they get two extra rolls. If they get a strike in one of the first nine frames, the value of the following two rolls, which may cover multiple frames, is added as a bonus.

If a player gets a spare in the final frame, they get one extra roll. If they get a spare in one of the first nine frames, the value of the following roll is added as a bonus.

Each argument represents one game of bowling for one player. For each roll, a single character represents the number of pins knocked down. Frames are separated by spaces. The following symbols are used.

SymbolDescription
XStrike - all ten pins were knocked down on the first roll of a frame, or the bonus rolls of the final frame. A strike in the first nine frames is represented by a space followed by an X, as if the strike happened on the frame’s second roll, even though the frame consists of a single roll.
/Spare - all remaining pins were knocked down on the second roll of a frame, or the second bonus roll of the final frame.
FFoul - part of the bowler’s body went past the foul line.
-Miss - No pins were knocked down.
⑤⑥⑦⑧Split - the foremost pin is knocked down and there is a gap of at least one pin between the pins that remain standing.

Output the total score for each game on a separate line. The total score is the total number of pins knocked down plus strike and spare bonuses.

0 bytes, 0 chars
Restore solution
All
Compiled from AT&T syntax to x86-64 Linux. Use syscalls to write output.
Top-level programs are supported, args holds ARGV. Implicit using directives for console applications are enabled.
Arguments are available via STDIN, each argument is NULL terminated. Taking input after EOF leaves the cell unchanged, the tape is circular with 65536 cells, and cells are 8-bit with wrapping.
Code is compiled with clang with -std=c++2b.
Code is compiled with LDC2.
Arguments are available via STDIN, each argument is NULL terminated. x is a no-op.
The stack is initialized with an array containing arguments, rather than the contents of STDIN.
Arguments are available via STDIN, each argument is NULL terminated.
arguments holds ARGV, print() to output with a newline, write() to output without a newline.
Code is run under -E, all current features are enabled.
$args to access the arguments.
prolog_flag(argv, Args) to access the arguments.
Arguments are available via STDIN, each argument is seperated with a null byte. The code is run with -E and -z. Output replaces null bytes with newlines.
SELECT arg FROM argv to access the arguments, only the first column of the first result set will be printed, NULL values will be skipped, and the dialect is SQLite.
Arguments are available via args list variable. To terminate script execution, write and quit the current buffer.
ctrl + enter or

Delete Solution

Are you sure you want to delete your solution(s) for Ten-pin Bowling?

If you have seperate bytes and chars solutions then both will be deleted.

This is irreversible, please backup any code you care about.

Type I understand and press confirm to continue.