From e6fc0fde396ea5dfe433d08d00445859162f99ce Mon Sep 17 00:00:00 2001 From: romanschenk37 <84532681+romanschenk37@users.noreply.github.com> Date: Fri, 18 Mar 2022 17:23:50 +0100 Subject: [PATCH] fix in makeCarMoveInTrack in Track.java (redraw finish line if car was on finish line) --- .../java/ch/zhaw/pm2/racetrack/Track.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/ch/zhaw/pm2/racetrack/Track.java b/src/main/java/ch/zhaw/pm2/racetrack/Track.java index 0593222..a1ace12 100644 --- a/src/main/java/ch/zhaw/pm2/racetrack/Track.java +++ b/src/main/java/ch/zhaw/pm2/racetrack/Track.java @@ -60,6 +60,7 @@ public class Track implements TrackSpecification { private List track; private List cars; private final List finishLine; + private ConfigSpecification.SpaceType finishTyp; /** * Initialize a Track from the given track file. @@ -132,7 +133,7 @@ public class Track implements TrackSpecification { if (finishLine.size() == 0) { throw new InvalidTrackFormatException(); } - ConfigSpecification.SpaceType finishTyp = getSpaceType(finishLine.get(0)); + finishTyp = getSpaceType(finishLine.get(0)); for (PositionVector positionVector : finishLine) { if (getSpaceType(positionVector) != finishTyp) { throw new InvalidTrackFormatException(); @@ -207,12 +208,20 @@ public class Track implements TrackSpecification { * @param carIndex of the current car */ private void makeCarMoveInTrack(int carIndex) { - PositionVector positionVector = findChar(getCarId(carIndex)); + PositionVector carPositionVector = findChar(getCarId(carIndex)); //Removes the Car at Current Pos - drawCharOnTrackIndicator(positionVector, ConfigSpecification.SpaceType.TRACK.getValue()); + drawCharOnTrackIndicator(carPositionVector, ConfigSpecification.SpaceType.TRACK.getValue()); + + //Redraw finishline if Car was on finish-line Position + for(PositionVector finishLinePositionVector : finishLine){ + if(finishLinePositionVector.equals(carPositionVector)){ + drawCharOnTrackIndicator(carPositionVector, finishTyp.getValue()); + } + } + //Adds Car at new Position - positionVector = cars.get(carIndex).nextPosition(); - drawCharOnTrackIndicator(positionVector, cars.get(carIndex).getID()); + carPositionVector = cars.get(carIndex).nextPosition(); + drawCharOnTrackIndicator(carPositionVector, cars.get(carIndex).getID()); } /**