The following is a score of a single game in badminton. The top row is the score for Player 1. The second row is the score for Player 2. Represent this data in an ArrayList in a class called BadmintonScoring.
0
|
1
|
2
|
|
|
|
|
|
3
|
4
|
|
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
0
|
|
|
1
|
2
|
3
|
4
|
5
|
|
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
|
16
|
17
|
18
|
19
|
20
|
21
|
Compute the maximum points scored by Player 1 and Player 2.
Compute the maximum number of points scored in a continuous sequence by Player 1 and Player 2. Hint: Player 1 scored the sequence 0-1-2, which implies s/he scored 2 points in a continuous sequence. Similarly, for Player 2, 16-17-18-19-20-21 implies that s/he scored 5 points in a continuous sequence.
Extend BadmintonScoring to associate each point scored by a player with a particular stroke that earned that point, using the notion of association list. You can represent each point as an object and store the score of a player in an association list (refer to Chapter 7, section 7.4.2 for details). For example, when Player 1 scored his/her first point, instead of just 1, it could have been {1, slice}. Thus, each point is augmented with the type of stroke from the following list:
slice
drive
smash
drop
net-shot
Store the following score of a single game using the modified BadmintonScoring class.
0
|
1a
|
2c
|
|
|
|
|
|
3a
|
4c
|
|
|
|
|
|
|
|
|
|
|
5c
|
|
|
|
|
|
|
0
|
|
|
1d
|
2e
|
3d
|
4e
|
5d
|
|
|
6e
|
7e
|
8a
|
9d
|
10e
|
11e
|
12e
|
13e
|
14e
|
15e
|
|
16e
|
17e
|
18e
|
19e
|
20e
|
21a
|
Identify the type of stroke that earned most points for each player.