diff options
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/StatisticsMenu.java | 93 |
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()); + }) ); } } |
