diff --git a/doc/examples/config.json b/doc/examples/config.json index c32caf45..b4f4ac11 100644 --- a/doc/examples/config.json +++ b/doc/examples/config.json @@ -1,7 +1,7 @@ { "race-name": "AC35", - "time-scale": 100, - "race-size": 2, + "time-scale": 1000, + "race-size": 4, "teams": [ {"team-name": "Oracle Team USA", "velocity": 20.9}, {"team-name": "Artemis Racing", "velocity": 18.3}, diff --git a/pom.xml b/pom.xml index 0be33f00..7baaf7fc 100644 --- a/pom.xml +++ b/pom.xml @@ -106,4 +106,4 @@ - + \ No newline at end of file diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 4031553b..5f8d7292 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -7,10 +7,8 @@ public class App { /** * Builds a race object for the AC35 course - * - * @param numberOfBoats, the number of boats to include in the race */ - public static Race createRace(int numberOfBoats) throws Exception{ + public static Race createRace() throws Exception{ Race race = new Race(); // Read team names from file @@ -18,6 +16,13 @@ public class App ArrayList boatNames = new ArrayList<>(); ArrayList> teams = fp.getTeams(); + //get race size + int numberOfBoats = (int) fp.getRaceSize(); + + //get time scale + int timeScale = (int) fp.getTimeScale(); + race.setTimeScale(timeScale); + for (Map team : teams) { boatNames.add((String) team.get("team-name")); } @@ -52,7 +57,7 @@ public class App Race race = null; try{ - race = createRace(2); + race = createRace(); } catch (Exception e){ System.out.println(e); diff --git a/src/main/java/seng302/Race.java b/src/main/java/seng302/Race.java index f354e26a..033b0c63 100644 --- a/src/main/java/seng302/Race.java +++ b/src/main/java/seng302/Race.java @@ -135,6 +135,14 @@ public class Race { return this.legs; } + /** + * Sets time scale + * @param timeScale + */ + public void setTimeScale(int timeScale) { + this.timeScale = timeScale; + } + /** * Temporary method used to generated all the events. */ @@ -144,7 +152,7 @@ public class Race { for (Boat boat : this.boats) { long totalDistance = 0; for (Leg leg : this.legs) { - long time = (long) (1000 * totalDistance / (boat.getVelocity() * this.timeScale)); + long time = (long) (1000 * totalDistance / boat.getVelocity()); Event event = new Event(time, boat, leg); events.add(event); totalDistance += leg.getDistance(); @@ -173,7 +181,7 @@ public class Race { // iterates all events. ends when no event in events. while (!events.isEmpty()) { Event peekEvent = events.peek(); - long currentTime = System.currentTimeMillis() - this.startTime; + long currentTime = (System.currentTimeMillis() - this.startTime) * this.timeScale; if (currentTime > peekEvent.getTime()) { // pull out the event