From 3296e09bf9f8a55941ded75776b266ead716c793 Mon Sep 17 00:00:00 2001 From: mo khan Date: Sun, 4 Aug 2019 16:07:14 -0600 Subject: work towards bridging ArrayList with 2d array --- src/Q8/BadmintonScoring.java | 2 +- src/Q8/BadmintonScoringWithStroke.java | 26 ++++++++++++++++++++------ 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 scores; - private int score1; - private int score2; + private ArrayList points; private static final int PLAYER1 = 0; private static final int PLAYER2 = 1; - public BadmintonScoringWithStroke(ArrayList scores) { + public BadmintonScoringWithStroke(ArrayList 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 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()); + // } } -- cgit v1.2.3