From 6ce9674e64cc273af2b33baa608f9bb2c5049d8b Mon Sep 17 00:00:00 2001 From: Haoming Yin Date: Tue, 7 Mar 2017 00:25:10 +1300 Subject: [PATCH] Added method to calculate distance travelled given velocity - added getDistanceTravelled(velocity) to calculate how far a boat has travelled - added startTime for calculating time elapse between start point and enquiry point #story[6] --- src/main/java/seng302/App.java | 1 - src/main/java/seng302/Race.java | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 39c0a0c5..4128889c 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -15,7 +15,6 @@ public class App for (Map team : teams) { boatNames.add((String) team.get("team-name")); } - System.out.println(boatNames.toString()); // Shuffle team names long seed = System.nanoTime(); diff --git a/src/main/java/seng302/Race.java b/src/main/java/seng302/Race.java index be4ebacc..df876d9f 100644 --- a/src/main/java/seng302/Race.java +++ b/src/main/java/seng302/Race.java @@ -10,6 +10,8 @@ public class Race { private ArrayList boats; private ArrayList legs; private int numberOfBoats = 0; + private long startTime = 0; + private int timeScale = 1; public Race(){ boats = new ArrayList(); @@ -103,11 +105,33 @@ public class Race { this.legs.add(leg); } + /** + * Gets legs array + * @return an array of legs + */ + public ArrayList getLegs() { + return this.legs; + } + + /** + * Calculates how far a boat has travelled in meter + * @param velocity the velocity of boat + * @return a float number of distance the boat has been travelled + */ + public float getDistanceTravelled(long velocity) { + long timeDiff = System.currentTimeMillis() - this.startTime; + long timeElapse = timeDiff / 1000 * this.timeScale; + return timeElapse * velocity; + } + /* Start the race and print each marker with the order in which the boats passed that marker */ public void startRace(){ + // record start time. + this.startTime = System.currentTimeMillis(); + for (Leg leg : this.legs.toArray(new Leg[legs.size()])){ Boat[] boats = this.getShuffledBoats();