From d0d4316bacad2da32aedc9149440e8fba1eab15e Mon Sep 17 00:00:00 2001 From: Erika Savell Date: Mon, 20 Mar 2017 15:07:20 +1300 Subject: [PATCH] Boat race finishes when all boats have crossed the line - Added a boolean flag 'finished' to BoatInRace #implement #story[9] --- src/main/java/seng302/Model/BoatInRace.java | 9 +++++++++ src/main/java/seng302/Model/Race.java | 4 ++-- src/main/java/seng302/Model/ResizableRaceCanvas.java | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index a224b5e2..200a2fff 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -17,6 +17,7 @@ public class BoatInRace extends Boat { private GPSCoordinate currentPosition; private long timeFinished; private Color colour; + private boolean finished = false; /** * @@ -112,6 +113,14 @@ public class BoatInRace extends Boat { this.distanceTravelledInLeg = distanceTravelledInLeg; } + public boolean isFinished() { + return this.finished; + } + + public void setFinished(boolean bool) { + this.finished = bool; + } + /** * Calculates the bearing of the travel via map coordinates of the raceMarkers diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index a0225d13..7c8e0c7f 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -95,7 +95,7 @@ public abstract class Race implements Runnable { System.out.println(minutes + ":" + remainingSeconds); for (BoatInRace boat : startingBoats) { - if (boat != null) { + if (boat != null && !boat.isFinished()) { updatePosition(boat, SLEEP_TIME); checkPosition(boat, totalTimeElapsed); } @@ -123,8 +123,8 @@ public abstract class Race implements Runnable { //boat has passed onto new leg if (boat.getCurrentLeg().getName().equals("Finish")) { //boat has finished - boat.setTimeFinished(timeElapsed); boatsFinished++; + boat.setFinished(true); } else { boat.setDistanceTravelledInLeg(boat.getDistanceTravelledInLeg() - boat.getCurrentLeg().getDistance()); Leg nextLeg = legs.get(boat.getCurrentLeg().getLegNumber() + 1); diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index c5bce448..9cbd403f 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -164,7 +164,7 @@ public class ResizableRaceCanvas extends Canvas { if (boats != null) { for (BoatInRace boat : boats) { if (boat != null) { - System.out.print("Drawing Boat At: " + boat.getCurrentPosition()); +// System.out.print("Drawing Boat At: " + boat.getCurrentPosition()); displayMark(this.map.convertGPS(boat.getCurrentPosition()), boat.getColour()); } } @@ -183,7 +183,7 @@ public class ResizableRaceCanvas extends Canvas { */ public void drawBoat(Color colour, GPSCoordinate gpsCoordinates) { GraphCoordinate graphCoordinate = this.map.convertGPS(gpsCoordinates); - System.out.println("DrawingBoat" + gpsCoordinates.getLongitude()); + //System.out.println("DrawingBoat" + gpsCoordinates.getLongitude()); displayPoint(graphCoordinate, colour); }