private int determineSquareKey(final int xPosition, final int yPosition) {
		final List<Vehicle> groundVehicles = map.getGroundlevelVehicles(xPosition, yPosition);
		final List<Vehicle> skyVehicles = map.getSkylevelVehicles(xPosition, yPosition);
		
		switch (map.getType(xPosition, yPosition)) {
		case SEA:
			if (groundVehicles.isEmpty()) {
				if (skyVehicles.isEmpty()) {
					return SEA_KEY;
				} else {
					if (skyVehicles.size() > 1) {
						return AIRCRAFTS_WATER_KEY;
					} else {
						return AIRCRAFT_WATER_KEY;
					}
				}
			} else {
				return CARRIER_KEY;
			}
		case LAND:
			if (groundVehicles.isEmpty()) {
				if (skyVehicles.isEmpty()) {
					return LAND_KEY;
				} else {
					if (skyVehicles.size() > 1) {
						return AIRCRAFTS_LAND_KEY;
					} else {
						return AIRCRAFT_LAND_KEY;
					}
				}
			} else {
				return CARRIER_KEY;
			}
		default:
			return -1;
		}
	}