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 getMenuOptions() { List opts = new ArrayList<>(); // 0) back opts.add(new MenuOption("back to main menu", () -> new MainMenu().present())); // 1) pick course by number TODO: add error checking opts.add(new MenuOption("pick course by number (1..1000)", () -> { Scanner sc = new Scanner(System.in); System.out.print("Course number (1..1000): "); int n = Integer.parseInt(sc.nextLine().trim()); Course c = MasterDatabase.INSTANCE.getCourse(n - 1); System.out.print("Starting hole (1..18, blank=1): "); String s = sc.nextLine().trim(); int start = s.isEmpty() ? 1 : Integer.parseInt(s); Hole startHole = c.getHoles().get(start - 1); Round r = new Round(c, LocalDateTime.now(), startHole); Session.getCurrentGolfer().addRound(r); new HolePlayMenu(r).present(); })); return opts; } }