Game #23
			
				
			
		
		
		
	| 
						 | 
					@ -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());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					@ -222,7 +231,7 @@ public class Track implements TrackSpecification {
 | 
				
			||||||
     * @return true if car would crash. Else false.
 | 
					     * @return true if car would crash. Else false.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public boolean willCrashAtPosition(int carIndex, PositionVector positionVector) throws PositionVectorNotValid {
 | 
					    public boolean willCrashAtPosition(int carIndex, PositionVector positionVector) throws PositionVectorNotValid {
 | 
				
			||||||
        isPositionVectorOnTrack(positionVector);
 | 
					        isPositionVectorOnTrack(positionVector); //TODO: remove this line? Or Method?
 | 
				
			||||||
        char charAtPosition = track.get(positionVector.getY()).charAt(positionVector.getX());
 | 
					        char charAtPosition = track.get(positionVector.getY()).charAt(positionVector.getX());
 | 
				
			||||||
        if (getCarId(carIndex) == charAtPosition) return false;
 | 
					        if (getCarId(carIndex) == charAtPosition) return false;
 | 
				
			||||||
        return !(charAtPosition == ConfigSpecification.SpaceType.TRACK.value ||
 | 
					        return !(charAtPosition == ConfigSpecification.SpaceType.TRACK.value ||
 | 
				
			||||||
| 
						 | 
					@ -236,14 +245,16 @@ public class Track implements TrackSpecification {
 | 
				
			||||||
     * This Method will make the Car Crash. In Track and in the Car Object
 | 
					     * This Method will make the Car Crash. In Track and in the Car Object
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param carIndex       representing current Car
 | 
					     * @param carIndex       representing current Car
 | 
				
			||||||
     * @param positionVector where the Crash did happen
 | 
					     * @param crashPositionVector where the Crash did happen
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public void carDoesCrash(int carIndex, PositionVector positionVector) throws PositionVectorNotValid{
 | 
					    public void carDoesCrash(int carIndex, PositionVector crashPositionVector) throws PositionVectorNotValid{
 | 
				
			||||||
        isPositionVectorOnTrack(positionVector);
 | 
					        isPositionVectorOnTrack(crashPositionVector); //TODO: remove this line? and Method?
 | 
				
			||||||
 | 
					        PositionVector currentCarPosition = getCarPos(carIndex);
 | 
				
			||||||
 | 
					        drawCharOnTrackIndicator(new PositionVector(currentCarPosition.getX(), currentCarPosition.getY()), ConfigSpecification.SpaceType.TRACK.getValue());
 | 
				
			||||||
        Car car = cars.get(carIndex);
 | 
					        Car car = cars.get(carIndex);
 | 
				
			||||||
        car.crash();
 | 
					        car.crash();
 | 
				
			||||||
        car.setPosition(positionVector);
 | 
					        car.setPosition(crashPositionVector);
 | 
				
			||||||
        drawCharOnTrackIndicator(new PositionVector(positionVector.getX(), positionVector.getY()), CRASH_INDICATOR);
 | 
					        drawCharOnTrackIndicator(new PositionVector(crashPositionVector.getX(), crashPositionVector.getY()), CRASH_INDICATOR);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue