private Location spawnAt(int width){
		int currentx, currenty, tempx, tempy;
		int length = 0;
		currentx = tempx = getLocation().getCol();
		currenty = tempy = getLocation().getRow();
		
		while(!meetsSpawningCondition(currentx, currenty, width)){
			length++;
			for(int k = 1; k<=length; k++){
				tempx=currentx-k;
				if(meetsSpawningCondition(tempx, tempy, width))
					return new Location(tempy,tempx);
			}
			currentx = tempx;
			for(int k = 1; k<=length; k++){
				tempy=currenty-k;
				if(meetsSpawningCondition(tempx, tempy, width))
					return new Location(tempy,tempx);
			}
			currenty = tempy;
			
			length++;
			for(int k = 1; k<=length; k++){
				tempx=currentx+k;
				if(meetsSpawningCondition(tempx, tempy, width))
					return new Location(tempy,tempx);
			}
			currentx = tempx;
			for(int k = 1; k<=length; k++){
				tempy=currenty+k;
				if(meetsSpawningCondition(tempx, tempy, width))
					return new Location(tempy,tempx);
			}
			currenty = tempy;
		}
		
		return new Location(currenty,currentx);
	}