summaryrefslogtreecommitdiff
path: root/src/Q8/BadmintonScoringWithStroke.java
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2019-08-04 15:43:43 -0600
committermo khan <mo@mokhan.ca>2019-08-04 15:43:43 -0600
commit7f13704a29228435ef6250b36f7fc277b8354c62 (patch)
treeb7edb00dcad7ac94beb12a30ebb383045ece6cbe /src/Q8/BadmintonScoringWithStroke.java
parent37f2196d2b140198bf0b6dd631529efd8b4cacd7 (diff)
get max stroke used for each player
Diffstat (limited to 'src/Q8/BadmintonScoringWithStroke.java')
-rw-r--r--src/Q8/BadmintonScoringWithStroke.java54
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";
+ }
}
}