diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Q8/BadmintonScoring.java | 2 | ||||
| -rw-r--r-- | src/Q8/BadmintonScoringWithStroke.java | 26 | ||||
| -rw-r--r-- | src/Q8/BadmintonScoringWithStrokeTest.java | 16 |
3 files changed, 37 insertions, 7 deletions
diff --git a/src/Q8/BadmintonScoring.java b/src/Q8/BadmintonScoring.java index 048d6ee..927f417 100644 --- a/src/Q8/BadmintonScoring.java +++ b/src/Q8/BadmintonScoring.java @@ -3,7 +3,7 @@ package Q8; import java.util.*; public class BadmintonScoring { - private int[][] scores; + protected int[][] scores; private static final int PLAYER1 = 0; private static final int PLAYER2 = 1; diff --git a/src/Q8/BadmintonScoringWithStroke.java b/src/Q8/BadmintonScoringWithStroke.java index 4ef5700..f9baa8c 100644 --- a/src/Q8/BadmintonScoringWithStroke.java +++ b/src/Q8/BadmintonScoringWithStroke.java @@ -3,15 +3,14 @@ package Q8; import java.util.*; public class BadmintonScoringWithStroke extends BadmintonScoring { - private ArrayList<Point> scores; - private int score1; - private int score2; + private ArrayList<Point> points; private static final int PLAYER1 = 0; private static final int PLAYER2 = 1; - public BadmintonScoringWithStroke(ArrayList<Point> scores) { + public BadmintonScoringWithStroke(ArrayList<Point> points) { super(new int[0][0]); - this.scores = scores; + this.points = points; + this.scores = to2DArray(points); } public String getMostUsedStrokePlayer1() { @@ -24,7 +23,8 @@ public class BadmintonScoringWithStroke extends BadmintonScoring { private String maxStrokeFor(int player) { int[] strokes = new int[] {0, 0, 0, 0, 0}; - for (Point point : this.scores) { + + for (Point point : this.points) { if (point.getPlayer() != player) continue; switch (point.getStroke()) { @@ -70,4 +70,18 @@ public class BadmintonScoringWithStroke extends BadmintonScoring { return "unknown"; } } + + private int[][] to2DArray(ArrayList<Point> points) { + int[][] scores = new int[points.size()][2]; + + for (int i = 0; i < points.size(); i++) { + Point point = points.get(i); + + scores[i][Point.PLAYER1] = i == 0 ? 0 : scores[i - 1][Point.PLAYER1]; + scores[i][Point.PLAYER2] = i == 0 ? 0 : scores[i - 1][Point.PLAYER2]; + scores[i][point.getPlayer()] = point.getScore(); + } + + return scores; + } } diff --git a/src/Q8/BadmintonScoringWithStrokeTest.java b/src/Q8/BadmintonScoringWithStrokeTest.java index 59e41fe..9f35c33 100644 --- a/src/Q8/BadmintonScoringWithStrokeTest.java +++ b/src/Q8/BadmintonScoringWithStrokeTest.java @@ -58,4 +58,20 @@ public class BadmintonScoringWithStrokeTest extends TestCase { public void test_getMostUsedStrokePlayer2() { assertEquals("net-shot", subject.getMostUsedStrokePlayer2()); } + + public void test_getPlayer1Points() { + assertEquals(5, this.subject.getPlayer1Points()); + } + + // public void test_getPlayer2Points() { + // assertEquals(21, this.subject.getPlayer2Points()); + // } + + // public void test_getContinuousPointsPlayer1() { + // assertEquals(2, this.subject.getContinuousPointsPlayer1()); + // } + + // public void test_getContinuousPointsPlayer2() { + // assertEquals(9, this.subject.getContinuousPointsPlayer2()); + // } } |
