Problem description
Eight clubs compete in a tenpin bowling competition. There are ten frames (sets of pins) and two balls are available if required by each competitor in each frame to knock down all pins. A "strike" is when all pins are knocked down with the first ball. A strike counts as 10 (there are ten pins) but also is affected by the scoring for the next two balls bowled. For example if a strike is bowled in the first frame and then a spare the score for the first ball is 20 (10 plus 10). If two strikes are bowled consecutively then 8 and 1 the score on the first strike ball is 28 (10 plus 10 plus 8) and on the second strike ball 19 (10 plus 8 plus 1). If a strike occurs in the last frame the competitor gets another frame and two more balls. Therefore a perfect game is 12 strikes (10 frames plus two more). If all pins are not knocked down with the first ball the remaining pins may be knocked down with the second ball. If this occurs it is referred to as a "spare". A spare is also affected by the score of the next ball bowled in that if a 7 follows the spare the score for the spare (2nd ball) is 17 (10 plus 7). If a spare is bowled in the last frame then the competitor gets another frame and one ball. If all pins are not knocked down by the two balls bowled for any given frame then the score is simply the number of pins knocked down. The maximum possible score in a game is 300.
There is an individual competition and a team competition. Teams consist of 4 competitors plus two reserves. Teams can be "mixed" i.e. have both men and women.
There are two categories of competitor: men and women. This could change in the future so it is best to allow for other options. One way of doing this is to list the categories on another sheet in the spreadsheet.
Individual competition
Competitors take turns for each frame. As each competitor is selected their score to that point should come up on screen preferably frame by frame not just a single number. For individual competition results the program must identify the 1st, 2nd and 3rd men and 1st, 2nd and 3rd women.
Team Competition
For each team drop the worst member's score then add all the remaining individual scores. Rank the teams and identify 1st, 2nd and 3rd.
Solution design
Competitor entry is ideally to be via a MS Word document which the clubs would submit. One document corresponds to one club's entries. The name of the club should be in the first table. The Word document should then contain a table where each row consists of the competitor's name and sex.
The data in the Word document is to be imported into MS Excel. The Excel component should be forms-based. User entry into the worksheets themselves is not desirable and will lose marks. A new competition should be able to be started in a user-friendly manner eg "Bedrock Tenpin Bowling Competition". The competition date and time will need to be entered. The Word data import will need to occur for each of the 4 teams. In Excel each competitor should be assigned a unique number. There should be provision for on-screen correction of competitors' details: name, sex and number entered. Teams may also need to be corrected. For team events competitors may be scratched and reserves promoted into their place. Competitors need to be identified by club also.
Results should be produced on screen in a convenient easy to read format including the competitor's name, sex, club and total score. Placings from first to third should be highlighted in some fashion. There should be provision for the results to be exported back to MS Word in tabular form and also to PDF files.
Warning
Avoid attempting too much and not completing a solution which works to some extent. Build your solution in stages, for example get individual competitor processing working first before attempting team results.
Data
Some sample competitor data will be available on vUWS. Use this to test your program.