summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/design/controller')
-rw-r--r--src/main/java/design/controller/userinput/menus/StatisticsMenu.java93
1 files changed, 92 insertions, 1 deletions
diff --git a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
index c609177..16d875a 100644
--- a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
+++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java
@@ -2,20 +2,111 @@ package design.controller.userinput.menus;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
+import design.model.Course;
+import design.model.Golfer;
+import design.model.statistics.CourseStats;
+import design.model.statistics.LifetimeStats;
+import design.model.statistics.Statistics;
+import design.model.statistics.YearlyStats;
+import design.runtime.Session;
import java.util.List;
+import java.util.Scanner;
public class StatisticsMenu extends Menu {
+ Golfer golfer = Session.getCurrentGolfer();
+
@Override
public String getTitle() {
return "statistics menu";
}
+ private Statistics getUserYear(Statistics baseStats){
+ Scanner sc = new Scanner(System.in);
+
+ System.out.println("Enter year to search: ");
+ int year = Integer.parseInt(sc.nextLine());
+
+ Statistics yearStats = new YearlyStats(baseStats, year);
+ return yearStats;
+ }
+
+ private Statistics getUserCourse(Statistics baseStats){
+ Scanner sc = new Scanner(System.in);
+
+ System.out.println("Enter course name to search: ");
+ String courseName = sc.nextLine();
+ System.out.println("Enter location of course");
+ String courseLocation = sc.nextLine();
+
+ Course course = matchCourse(courseName, courseLocation);
+ Statistics courseStats = new CourseStats(baseStats, course);
+ return courseStats;
+ }
+ private Course matchCourse(String courseName, String courseLocation){
+ for(Course course : golfer.getCourses()){
+ if(course.getName().toLowerCase().equals(courseName.toLowerCase()) && course.getLocation().toLowerCase().equals(courseLocation.toLowerCase())){
+ return course;
+ }
+ }
+ return null;
+ }
+
+ private Statistics getUserRound(Statistics baseStats){
+ return null;
+ }
+
+ private Statistics getUserHole(Statistics baseStatistics){
+ return null;
+ }
+
@Override
public List<MenuOption> getMenuOptions() {
return List.of(
- new MenuOption("return to main menu", () -> new MainMenu().present())
+ new MenuOption("return to main menu", () -> new MainMenu().present()),
+ new MenuOption("view lifetime statistics", () -> {
+ Statistics stats = new LifetimeStats(golfer);
+ System.out.printf("Total swings: %d\n", stats.get_score());
+ System.out.printf("Total distance: %.1f\n", stats.get_distance());
+ this.present();
+ }),
+ new MenuOption("view yearly statistics", () -> {
+ Statistics baseStats = new LifetimeStats(golfer);
+ Statistics yearStats = getUserYear(baseStats);
+
+ System.out.printf("Total swings: %d\n", yearStats.get_score());
+ System.out.printf("Total distance: %.1f\n", yearStats.get_distance());
+ this.present();
+ }),
+ new MenuOption("view course statistics", () -> {
+ Statistics baseStats = new LifetimeStats(golfer);
+ Statistics yearStats = getUserYear(baseStats);
+ Statistics courseStats = getUserCourse(yearStats);
+
+ System.out.printf("Total swings: %d\n", courseStats.get_score());
+ System.out.printf("Total distance: %.1f\n", courseStats.get_distance());
+ this.present();
+ }),
+ new MenuOption("view round statistics", () -> {
+ Statistics baseStats = new LifetimeStats(golfer);
+ Statistics yearStats = getUserYear(baseStats);
+ Statistics courseStats = getUserCourse(yearStats);
+ Statistics roundStats = getUserRound(courseStats);
+
+ System.out.printf("Total swings: %d\n", roundStats.get_score());
+ System.out.printf("Total distance: %.1f\n", roundStats.get_distance());
+ }),
+ new MenuOption("view hole statistics", () -> {
+ Statistics baseStats = new LifetimeStats(golfer);
+ Statistics yearStats = getUserYear(baseStats);
+ Statistics courseStats = getUserCourse(yearStats);
+ Statistics roundStats = getUserRound(courseStats);
+ Statistics holeStats = getUserHole(roundStats);
+
+ System.out.printf("Total swings: %d\n", holeStats.get_score());
+ System.out.printf("Total distance: %.1f\n", holeStats.get_distance());
+ })
);
}
}