- Crash Methoden hinzugefügt
This commit is contained in:
		
							parent
							
								
									46e6b838c2
								
							
						
					
					
						commit
						c4ea4d1920
					
				| 
						 | 
				
			
			@ -157,6 +157,12 @@ public class Track implements TrackSpecification {
 | 
			
		|||
        return vector;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void drawCharOnTrackIndicator(PositionVector positionVector, char symbol) {
 | 
			
		||||
        String line = track.get(positionVector.getY());
 | 
			
		||||
        line = line.substring(0,positionVector.getX()) + symbol + line.substring(positionVector.getX()+1);
 | 
			
		||||
        track.add(positionVector.getY(),line);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return all Cars
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -184,22 +190,24 @@ public class Track implements TrackSpecification {
 | 
			
		|||
     * @param carIndex representing the current Car
 | 
			
		||||
     */
 | 
			
		||||
    public void moveCar(int carIndex) {
 | 
			
		||||
        PositionVector positionVector = findChar(getCarId(carIndex));
 | 
			
		||||
        //Removes the Car at Current Pos
 | 
			
		||||
        String line = track.get(positionVector.getY());
 | 
			
		||||
        line = line.substring(0,positionVector.getX()) + ConfigSpecification.SpaceType.TRACK.getValue() + line.substring(positionVector.getX()+1);
 | 
			
		||||
        track.add(positionVector.getY(),line);
 | 
			
		||||
 | 
			
		||||
        //Adds Car at new Position
 | 
			
		||||
        positionVector = cars.get(carIndex).nextPosition();
 | 
			
		||||
        line = track.get(positionVector.getY());
 | 
			
		||||
        line = line.substring(0,positionVector.getX()) + cars.get(carIndex).getID() + line.substring(positionVector.getX()+1);
 | 
			
		||||
        track.add(positionVector.getY(),line);
 | 
			
		||||
 | 
			
		||||
        makeCarMoveInTrack(carIndex);
 | 
			
		||||
        //Change position of car
 | 
			
		||||
        getCar(carIndex).move();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This class does change the Position of the car only in the track.
 | 
			
		||||
     * @param carIndex
 | 
			
		||||
     */
 | 
			
		||||
    private void makeCarMoveInTrack(int carIndex) {
 | 
			
		||||
        PositionVector positionVector = findChar(getCarId(carIndex));
 | 
			
		||||
        //Removes the Car at Current Pos
 | 
			
		||||
        drawCharOnTrackIndicator(positionVector,ConfigSpecification.SpaceType.TRACK.getValue());
 | 
			
		||||
        //Adds Car at new Position
 | 
			
		||||
        positionVector = cars.get(carIndex).nextPosition();
 | 
			
		||||
        drawCharOnTrackIndicator(positionVector,cars.get(carIndex).getID());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This Method will check if the Car could crash at the specific position
 | 
			
		||||
     * @param positionVector the position to check if the car could crash
 | 
			
		||||
| 
						 | 
				
			
			@ -210,6 +218,19 @@ public class Track implements TrackSpecification {
 | 
			
		|||
        return charAtPosition != ConfigSpecification.SpaceType.TRACK.value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 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
 | 
			
		||||
     */
 | 
			
		||||
    public void carDoesCrash(int carIndex,PositionVector positionVector) {
 | 
			
		||||
        Car car = cars.get(carIndex);
 | 
			
		||||
        car.crash();
 | 
			
		||||
        makeCarMoveInTrack(carIndex);
 | 
			
		||||
        drawCharOnTrackIndicator(new PositionVector(positionVector.getX()+1,positionVector.getY()),CRASH_INDICATOR);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Return the type of space at the given position.
 | 
			
		||||
     * If the location is outside the track bounds, it is considered a wall.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue