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

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 characters
 
 
 
 
 
 
 
 
arguments holds ARGV, print() to output with a newline, write() to output without a newline.
say() is available without any import.
SELECT arg FROM argv to access ARGV. Only the first column of each row will be printed, and each on a newline. The dialect is SQLite.
ctrl + enter or Run