summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjrshi <jrs9538@g.rit.edu>2025-11-16 15:37:32 -0500
committerjrshi <jrs9538@g.rit.edu>2025-11-16 15:37:32 -0500
commit0c2644dcb4fb6e70fb0e9b7a4d583e8b5b9af021 (patch)
tree8e959f7b6d181c952f6df0728ae639726dc566e7 /src
parent5bb349e46fbe9c63ad15379703e0d1371bae0081 (diff)
downloaddesignproject-design-6-0c2644dcb4fb6e70fb0e9b7a4d583e8b5b9af021.tar.gz
designproject-design-6-0c2644dcb4fb6e70fb0e9b7a4d583e8b5b9af021.tar.bz2
designproject-design-6-0c2644dcb4fb6e70fb0e9b7a4d583e8b5b9af021.zip
Working on league menus
Diffstat (limited to 'src')
-rw-r--r--src/main/java/design/controller/userinput/menus/HolePlayMenu.java4
-rw-r--r--src/main/java/design/controller/userinput/menus/LeageMenu.java14
-rw-r--r--src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java43
-rw-r--r--src/main/java/design/model/League.java12
-rw-r--r--src/main/java/design/model/Match.java4
-rw-r--r--src/main/java/design/model/ScrambleLeague.java26
-rw-r--r--src/main/java/design/model/StrokeLeague.java22
7 files changed, 97 insertions, 28 deletions
diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
index 6651500..e4dc43d 100644
--- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
+++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
@@ -28,6 +28,10 @@ public class HolePlayMenu extends Menu {
this.ctx = new HolePlayContext(this.golfer, round, PersonalDatabase.instance());
}
+ public Round getRound() {
+ return round;
+ }
+
@Override
public String getTitle() {
return String.format("hole play - %s | hole %d", round.getCourse().getName(),
diff --git a/src/main/java/design/controller/userinput/menus/LeageMenu.java b/src/main/java/design/controller/userinput/menus/LeageMenu.java
index d9afa91..4e2f079 100644
--- a/src/main/java/design/controller/userinput/menus/LeageMenu.java
+++ b/src/main/java/design/controller/userinput/menus/LeageMenu.java
@@ -3,6 +3,8 @@ package design.controller.userinput.menus;
import design.controller.userinput.Menu;
import design.controller.userinput.MenuOption;
import design.model.League;
+import design.model.Round;
+import design.runtime.Session;
import java.util.ArrayList;
import java.util.List;
@@ -22,9 +24,15 @@ public class LeageMenu extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
List<MenuOption> options = new ArrayList<>();
- options.add(new MenuOption("statistics...", () -> {}));
- options.add(new MenuOption("leaderboard...", () -> {}));
- options.add(new MenuOption("log round...", () -> {}));
+ options.add(new MenuOption("statistics...", () -> {
+ new LeagueStatsMenu(league).present();
+ }));
+ options.add(new MenuOption("log round...", () -> {
+ var holePlay = new HolePlayMenu();
+ holePlay.present();
+ Round round = holePlay.getRound();
+ league.recordPlay(Session.getCurrentGolfer(), league.getCurrentMatch(), round);
+ }));
return options;
}
}
diff --git a/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java b/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java
new file mode 100644
index 0000000..d0aa2b2
--- /dev/null
+++ b/src/main/java/design/controller/userinput/menus/LeagueStatsMenu.java
@@ -0,0 +1,43 @@
+package design.controller.userinput.menus;
+
+import design.controller.userinput.Menu;
+import design.controller.userinput.MenuOption;
+import design.model.League;
+import design.model.statistics.LeagueStats;
+
+import java.util.List;
+
+public class LeagueStatsMenu extends Menu {
+ private final LeagueStats league;
+
+ public LeagueStatsMenu(League league) {
+ this.league = new LeagueStats(league);
+ }
+
+ @Override
+ public String getTitle() {
+ return "League Stats";
+ }
+
+ @Override
+ public List<MenuOption> getMenuOptions() {
+ return List.of(
+ new MenuOption("View Played Matches", () -> {
+ System.out.println(league.getMatchesPlayed());
+ this.present();
+ }),
+ new MenuOption("Get Scores", () -> {
+ System.out.println(league.getScores());
+ this.present();
+ }),
+ new MenuOption("Get Standings", () -> {
+ System.out.println(league.getStandings());
+ this.present();
+ }),
+ new MenuOption("Get Winners", () -> {
+ System.out.println(league.getWinners());
+ this.present();
+ })
+ );
+ }
+}
diff --git a/src/main/java/design/model/League.java b/src/main/java/design/model/League.java
index 2a7366a..44dc83e 100644
--- a/src/main/java/design/model/League.java
+++ b/src/main/java/design/model/League.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -104,6 +105,15 @@ public abstract class League {
schedule.add(match);
}
+ public Match getCurrentMatch() {
+ for(Match m : schedule){
+ if(m.getStart().isBefore(LocalDateTime.now()) && m.getEnd().isAfter(LocalDateTime.now())){
+ return m;
+ }
+ }
+ return null;
+ }
+
public void setId(int id) {
assert this.id == -1;
this.id = id;
@@ -130,5 +140,5 @@ public abstract class League {
public abstract Map<?, Integer> getResults();
- public abstract void finalizeMatch(Match match);
+ //public abstract void finalizeMatch(Match match);
}
diff --git a/src/main/java/design/model/Match.java b/src/main/java/design/model/Match.java
index 525f281..3c19230 100644
--- a/src/main/java/design/model/Match.java
+++ b/src/main/java/design/model/Match.java
@@ -49,6 +49,10 @@ public class Match {
return start;
}
+ public LocalDateTime getEnd() {
+ return end;
+ }
+
public int getHoleCount() {
return holeCount;
}
diff --git a/src/main/java/design/model/ScrambleLeague.java b/src/main/java/design/model/ScrambleLeague.java
index adf2105..64f62f5 100644
--- a/src/main/java/design/model/ScrambleLeague.java
+++ b/src/main/java/design/model/ScrambleLeague.java
@@ -89,17 +89,17 @@ public class ScrambleLeague extends League {
return getTotalTeamScores();
}
- @Override
- public void finalizeMatch(Match match) {
- getCompletedMatches().add(match);
- for(int i = 0; i < participants.size(); i++){
- Team team = participants.get(i);
- Round round = match.getRoundFor(i);
- if(round != null){
- for(Golfer member : team.getMembers()){
- member.addRound(round);
- }
- }
- }
- }
+// @Override
+// public void finalizeMatch(Match match) {
+// getCompletedMatches().add(match);
+// for(int i = 0; i < participants.size(); i++){
+// Team team = participants.get(i);
+// Round round = match.getRoundFor(i);
+// if(round != null){
+// for(Golfer member : team.getMembers()){
+// member.addRound(round);
+// }
+// }
+// }
+// }
}
diff --git a/src/main/java/design/model/StrokeLeague.java b/src/main/java/design/model/StrokeLeague.java
index 48889b7..497db20 100644
--- a/src/main/java/design/model/StrokeLeague.java
+++ b/src/main/java/design/model/StrokeLeague.java
@@ -73,15 +73,15 @@ public class StrokeLeague extends League {
return getTotalStrokes();
}
- @Override
- public void finalizeMatch(Match match) {
- getCompletedMatches().add(match);
- for(int i = 0; i < participants.size(); i++){
- Golfer player = participants.get(i);
- Round round = match.getRoundFor(i);
- if(round != null){
- player.addRound(round);
- }
- }
- }
+// @Override
+// public void finalizeMatch(Match match) {
+// getCompletedMatches().add(match);
+// for(int i = 0; i < participants.size(); i++){
+// Golfer player = participants.get(i);
+// Round round = match.getRoundFor(i);
+// if(round != null){
+// player.addRound(round);
+// }
+// }
+// }
}