summaryrefslogtreecommitdiff
path: root/src/Q8/BadmintonScoring.java
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2019-08-03 17:39:57 -0600
committermo khan <mo@mokhan.ca>2019-08-03 17:39:57 -0600
commitb569a44a1d2f2755855cd8bf1fdb34bae66c39c0 (patch)
treee95624a8a5c46aef322c729e3a6f5ed9379e66e5 /src/Q8/BadmintonScoring.java
parent3bdebf262814ea137f7fd9003c109d3cac9634a0 (diff)
determine longest point streak
Diffstat (limited to 'src/Q8/BadmintonScoring.java')
-rw-r--r--src/Q8/BadmintonScoring.java33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/Q8/BadmintonScoring.java b/src/Q8/BadmintonScoring.java
index 7c11918..048d6ee 100644
--- a/src/Q8/BadmintonScoring.java
+++ b/src/Q8/BadmintonScoring.java
@@ -1,5 +1,7 @@
package Q8;
+import java.util.*;
+
public class BadmintonScoring {
private int[][] scores;
private static final int PLAYER1 = 0;
@@ -10,11 +12,11 @@ public class BadmintonScoring {
}
public int getContinuousPointsPlayer1() {
- return 0;
+ return this.longestStreakFor(PLAYER1);
}
public int getContinuousPointsPlayer2() {
- return 0;
+ return this.longestStreakFor(PLAYER2);
}
public int getPlayer1Points() {
@@ -30,4 +32,31 @@ public class BadmintonScoring {
for (int[] items : scores) finalScore = items[player];
return finalScore;
}
+
+ private int longestStreakFor(int player) {
+ int streak = 0;
+ int longestStreak = 0;
+ boolean lastWinner = false;
+
+ for (int i = 0; i < scores.length; i++) {
+ int score = scores[i][player];
+ int previousScore = i == 0 ? -1 : scores[i - 1][player];
+ boolean winner = score > previousScore;
+
+ if (winner && lastWinner) {
+ streak++;
+ longestStreak = (streak > longestStreak) ? streak : longestStreak;
+ } else streak = 0;
+
+ lastWinner = winner;
+ }
+
+ return longestStreak;
+ }
+
+ private int winnerOf(int round) {
+ int player1Score = scores[round][0];
+ int player1PreviousScore = scores[round - 1][0];
+ return player1Score > player1PreviousScore ? PLAYER1 : PLAYER2;
+ }
}