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<Car> cars;
private final List<PositionVector> 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());
}
/**