Game #23
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -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());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -222,7 +231,7 @@ public class Track implements TrackSpecification {
 | 
			
		|||
     * @return true if car would crash. Else false.
 | 
			
		||||
     */
 | 
			
		||||
    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());
 | 
			
		||||
        if (getCarId(carIndex) == charAtPosition) return false;
 | 
			
		||||
        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
 | 
			
		||||
     *
 | 
			
		||||
     * @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{
 | 
			
		||||
        isPositionVectorOnTrack(positionVector);
 | 
			
		||||
    public void carDoesCrash(int carIndex, PositionVector crashPositionVector) throws PositionVectorNotValid{
 | 
			
		||||
        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.crash();
 | 
			
		||||
        car.setPosition(positionVector);
 | 
			
		||||
        drawCharOnTrackIndicator(new PositionVector(positionVector.getX(), positionVector.getY()), CRASH_INDICATOR);
 | 
			
		||||
        car.setPosition(crashPositionVector);
 | 
			
		||||
        drawCharOnTrackIndicator(new PositionVector(crashPositionVector.getX(), crashPositionVector.getY()), CRASH_INDICATOR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue