fix in makeCarMoveInTrack in Track.java (redraw finish line if car was on finish line)

This commit is contained in:
romanschenk37 2022-03-18 17:23:50 +01:00
parent 9869e8e74d
commit e6fc0fde39
1 changed files with 14 additions and 5 deletions

View File

@ -60,6 +60,7 @@ public class Track implements TrackSpecification {
private List<String> track; private List<String> track;
private List<Car> cars; private List<Car> cars;
private final List<PositionVector> finishLine; private final List<PositionVector> finishLine;
private ConfigSpecification.SpaceType finishTyp;
/** /**
* Initialize a Track from the given track file. * Initialize a Track from the given track file.
@ -132,7 +133,7 @@ public class Track implements TrackSpecification {
if (finishLine.size() == 0) { if (finishLine.size() == 0) {
throw new InvalidTrackFormatException(); throw new InvalidTrackFormatException();
} }
ConfigSpecification.SpaceType finishTyp = getSpaceType(finishLine.get(0)); finishTyp = getSpaceType(finishLine.get(0));
for (PositionVector positionVector : finishLine) { for (PositionVector positionVector : finishLine) {
if (getSpaceType(positionVector) != finishTyp) { if (getSpaceType(positionVector) != finishTyp) {
throw new InvalidTrackFormatException(); throw new InvalidTrackFormatException();
@ -207,12 +208,20 @@ public class Track implements TrackSpecification {
* @param carIndex of the current car * @param carIndex of the current car
*/ */
private void makeCarMoveInTrack(int carIndex) { private void makeCarMoveInTrack(int carIndex) {
PositionVector positionVector = findChar(getCarId(carIndex)); PositionVector carPositionVector = findChar(getCarId(carIndex));
//Removes the Car at Current Pos //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 //Adds Car at new Position
positionVector = cars.get(carIndex).nextPosition(); carPositionVector = cars.get(carIndex).nextPosition();
drawCharOnTrackIndicator(positionVector, cars.get(carIndex).getID()); drawCharOnTrackIndicator(carPositionVector, cars.get(carIndex).getID());
} }
/** /**