diff options
| author | Willem Dalton <144246261+WillemDalton@users.noreply.github.com> | 2025-10-12 12:36:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-12 12:36:17 -0400 |
| commit | ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839 (patch) | |
| tree | 91ed2c27e9735e05c8569f48e1130a95a7bdeb46 /src/main/java/design/controller/userinput/menus/CourseSelectMenu.java | |
| parent | 1eca2f8681752ad359e8372780cdf719e2b1747d (diff) | |
| parent | 050118d5d029382ffc3b11e9f8159fb297007ef5 (diff) | |
| download | designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.gz designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.bz2 designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.zip | |
Merge pull request #12 from RIT-SWEN-262/menu-reorganize
Menu reorganize
Diffstat (limited to 'src/main/java/design/controller/userinput/menus/CourseSelectMenu.java')
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/CourseSelectMenu.java | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java deleted file mode 100644 index af825e0..0000000 --- a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java +++ /dev/null @@ -1,100 +0,0 @@ -package design.controller.userinput.menus; - -import design.controller.userinput.Menu; -import design.controller.userinput.MenuOption; -import design.model.Course; -import design.model.Hole; -import design.model.Round; - -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; - -import design.persistence.MasterDatabase; -import design.runtime.Session; - -public class CourseSelectMenu extends Menu { - - @Override - public String getTitle() { - return "course select"; - } - - @Override - public List<MenuOption> getMenuOptions() { - List<MenuOption> opts = new ArrayList<>(); - - // 0) back - opts.add(new MenuOption("back to main menu", () -> new MainMenu().present())); - - // 1) go to CourseSearchMenu to search for a course and add it profile - opts.add(new MenuOption("Add Course to Profile", () -> new MainMenu().present())); - - // 2) pick course from MY PROFILE only - opts.add(new MenuOption("pick course from my profile", () -> { - var golfer = Session.getCurrentGolfer(); - Course[] mine = (golfer == null) ? new Course[0] : golfer.getCourses(); - - // Checks user has courses of not informs them to add one to there profile - if (mine == null || mine.length == 0) { - System.out.println("You don't have any courses saved to your profile yet."); - System.out.println("Use the 'Add Course to Profile' menu first."); - this.present(); - return; - } - // Select a course - Scanner sc = new Scanner(System.in); - - // Prints all courses - System.out.println("-- MY COURSES --"); - for (int i = 0; i < mine.length; i++) { - Course c = mine[i]; - System.out.printf("%d: %s (%s) | Holes: %d | Total Par: %d | Difficulty: %.1f%n", - i + 1, c.getName(), c.getLocation(), c.getHoleCount(), c.getTotalPar(), - c.getDifficultyRating()); - } - // Select course by number - Course selected = null; - while (selected == null) { - System.out.print("Select course # (1.." + mine.length + "): "); - String line = sc.nextLine().trim(); - int idx = Integer.parseInt(line); - if (idx < 1 || idx > mine.length) { - System.out.println("Out of range. Try again."); - continue; - } - selected = mine[idx - 1]; - } - // Gets starting hole on course - int startHoleNum = readStartingHole(sc, selected.getHoleCount()); - // Starts round and sends user to HolePlayMenu - startRound(selected, startHoleNum); - })); - - return opts; - } - - private int readStartingHole(Scanner sc, int holeCount) { - // Asks for a hole number until a valid number is selected - while (true) { - System.out.print("Starting hole (1.." + holeCount + ", blank=1): "); - String s = sc.nextLine().trim(); - if (s.isEmpty()) - return 1; - int start = Integer.parseInt(s); - if (start < 1 || start > holeCount) { - System.out.println("Starting hole must be between 1 and " + holeCount + "."); - continue; - } - return start; - } - } - - private void startRound(Course c, int startHoleNum) { - Hole startHole = c.getHoles().get(startHoleNum - 1); - Round r = new Round(c, LocalDateTime.now(), startHole); - Session.getCurrentGolfer().addRound(r); - new HolePlayMenu(r).present(); - } -} |
