diff options
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/model/statistics/HoleStats.java | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/main/java/design/model/statistics/HoleStats.java b/src/main/java/design/model/statistics/HoleStats.java index 2c023b4..6f6104a 100644 --- a/src/main/java/design/model/statistics/HoleStats.java +++ b/src/main/java/design/model/statistics/HoleStats.java @@ -3,6 +3,7 @@ package design.model.statistics; import java.util.Arrays; import design.model.Hole; +import design.model.Play; import design.model.Round; public class HoleStats extends StatisticsDecorator{ @@ -16,7 +17,35 @@ public class HoleStats extends StatisticsDecorator{ @Override public Round[] getRounds(){ return Arrays.stream(super.getRounds()) - .filter(round -> round.getCourse().getHoles().stream().anyMatch(hole -> hole.equals(target_hole))) + .filter(round -> round.getCourse().getHoles().contains(target_hole)) .toArray(Round[]::new); } + + @Override + public int get_score() { + // Sum swings only on the target hole + int totalSwings = 0; + for (Round round : super.getRounds()) { + for (Play play : round.getPlays()) { + if (play.getHoleNumber() == target_hole.getNumber()) { + totalSwings += play.getSwingCount(); + } + } + } + return totalSwings; + } + + @Override + public double get_distance() { + // Sum distances only on the target hole + double totalDistance = 0; + for (Round round : super.getRounds()) { + for (Play play : round.getPlays()) { + if (play.getHoleNumber() == target_hole.getNumber()) { + totalDistance += play.getDistance(); + } + } + } + return totalDistance; + } } |
