private synchronized boolean trySpawn(Dinosauro tempDinosauro, int maxDistance) {
		Coord tempCoord = null;
		if (maxDistance == 0) {
			if (!isCellaAcqua(tempDinosauro.getCoord()) &&
					!isCellaDinosauro(tempDinosauro.getCoord())) {
				getMappa().spawnDinosauro(tempDinosauro.getCoord(), tempDinosauro.getIdDinosauro());
				return true;
			}
			else return trySpawn(tempDinosauro, maxDistance+1);
		}
		else {
			int i = -maxDistance;
			int j = -maxDistance;
			while(i<(maxDistance+1)) {
				j = -maxDistance;
				while(j<(maxDistance+1)) {
					tempCoord = new Coord(tempDinosauro.getCoord().getX()+i, tempDinosauro.getCoord().getY()+j);
					if (isValidCoord(tempCoord)) {
						if (!isCellaAcqua(tempCoord) &&
								!isCellaDinosauro(tempCoord)) {
							tempDinosauro.setCoord(tempCoord);
							getMappa().spawnDinosauro(tempDinosauro.getCoord(), tempDinosauro.getIdDinosauro());
							return true;
						}
					}
					j++;
				}
				i++;
			}
			return trySpawn(tempDinosauro, maxDistance+1);
		}
	}