diff options
| author | Jacob Shimp <jrs9538@g.rit.edu> | 2025-10-07 09:21:57 -0400 |
|---|---|---|
| committer | Jacob Shimp <jrs9538@g.rit.edu> | 2025-10-07 09:21:57 -0400 |
| commit | 2411189b09dad6339379c62474f671ce8983db75 (patch) | |
| tree | 5c4caae9eabf205c94ee680126c2d63af5e4d87e /src/main/java/design/controller/userinput/menus | |
| parent | 35b085903c15f0b740cd2c61a23e9d66c1bd8ae9 (diff) | |
| download | designproject-design-6-2411189b09dad6339379c62474f671ce8983db75.tar.gz designproject-design-6-2411189b09dad6339379c62474f671ce8983db75.tar.bz2 designproject-design-6-2411189b09dad6339379c62474f671ce8983db75.zip | |
added menu options
Diffstat (limited to 'src/main/java/design/controller/userinput/menus')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/StatisticsMenu.java | 86 |
1 files changed, 84 insertions, 2 deletions
diff --git a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java index ebd2e3f..c299d3e 100644 --- a/src/main/java/design/controller/userinput/menus/StatisticsMenu.java +++ b/src/main/java/design/controller/userinput/menus/StatisticsMenu.java @@ -2,29 +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; + } + @Override public List<MenuOption> getMenuOptions() { return List.of( new MenuOption("return to main menu", () -> new MainMenu().present()), - new MenuOption("view lifetime stats", () -> { - Golfer golfer = Session.getCurrentGolfer(); + 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); + Scanner sc = new Scanner(System.in); + + System.out.println("Enter year to search: "); + int year = sc.nextInt(); + Statistics yearStats = new YearlyStats(baseStats, year); + + System.out.printf("Total swings: %d\n", yearStats.get_score()); + System.out.printf("Total distance: %.1f\n", yearStats.get_distance()); + sc.close(); + }), + new MenuOption("view hole statistics", () -> { + Statistics baseStats = new LifetimeStats(golfer); + Scanner sc = new Scanner(System.in); + + System.out.println("Enter year to search: "); + int year = sc.nextInt(); + Statistics yearStats = new YearlyStats(baseStats, year); + + System.out.printf("Total swings: %d\n", yearStats.get_score()); + System.out.printf("Total distance: %.1f\n", yearStats.get_distance()); + sc.close(); }) ); } |
