protected void moveCar(int[] nextCoordinates) throws GameEndException{
		if(countMoves > 10000/waitingDuration){
			throw new GameEndException("Car " + name + " has " + getPoints() + " points");
		}
		
		if(nextCoordinates[0] != -1){ 
			this.x = nextCoordinates[0];
			this.y = nextCoordinates[1];

			Field newField = map.getField(x, y);

			try{
				newField.checkHit(this);
			}catch(GameEndException ex){
				throw ex;
			}

			newField.parkCar(this);

			try {
				Thread.sleep(waitingDuration);
			} catch (InterruptedException e) {
				throw new GameEndException("Car " + name + " has " + getPoints() + " points");
			}
			newField.unParkCar(this);
		}else{ //nexCoordinates[0] == -1 -> the next field would be illegal
			try {
				Thread.sleep(waitingDuration);
			} catch (InterruptedException e) {
				throw new GameEndException("Car " + name + " has " + getPoints() + " points");
			}			

			//unless algorithm is random, the car is stuck forever
		}
		countMoves++;
	}