diff options
| author | mo khan <mo@mokhan.ca> | 2019-08-04 15:43:43 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2019-08-04 15:43:43 -0600 |
| commit | 7f13704a29228435ef6250b36f7fc277b8354c62 (patch) | |
| tree | b7edb00dcad7ac94beb12a30ebb383045ece6cbe /src/Q8/BadmintonScoringWithStroke.java | |
| parent | 37f2196d2b140198bf0b6dd631529efd8b4cacd7 (diff) | |
get max stroke used for each player
Diffstat (limited to 'src/Q8/BadmintonScoringWithStroke.java')
| -rw-r--r-- | src/Q8/BadmintonScoringWithStroke.java | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/src/Q8/BadmintonScoringWithStroke.java b/src/Q8/BadmintonScoringWithStroke.java index 55a1679..4ef5700 100644 --- a/src/Q8/BadmintonScoringWithStroke.java +++ b/src/Q8/BadmintonScoringWithStroke.java @@ -11,13 +11,63 @@ public class BadmintonScoringWithStroke extends BadmintonScoring { public BadmintonScoringWithStroke(ArrayList<Point> scores) { super(new int[0][0]); + this.scores = scores; } public String getMostUsedStrokePlayer1() { - return ""; + return maxStrokeFor(Point.PLAYER1); } public String getMostUsedStrokePlayer2() { - return ""; + return maxStrokeFor(Point.PLAYER2); + } + + private String maxStrokeFor(int player) { + int[] strokes = new int[] {0, 0, 0, 0, 0}; + for (Point point : this.scores) { + if (point.getPlayer() != player) continue; + + switch (point.getStroke()) { + case "slice": + strokes[0] += 1; + break; + case "drive": + strokes[1] += 1; + break; + case "smash": + strokes[2] += 1; + break; + case "drop": + strokes[3] += 1; + break; + case "net-shot": + strokes[4] += 1; + break; + } + } + int maxIndex = 0; + int maxValue = 0; + + for (int i = 0; i < strokes.length; i++) { + if (strokes[i] > maxValue) { + maxIndex = i; + maxValue = strokes[i]; + } + } + + switch (maxIndex) { + case 0: + return "slice"; + case 1: + return "drive"; + case 2: + return "smash"; + case 3: + return "drop"; + case 4: + return "net-shot"; + default: + return "unknown"; + } } } |
