public boolean isValidToOccupy(int x, int y) {
		Point point = new Point(x, y);
		if (!isOccupied(point)) {
			// Loops through all adjecent tiles
			for (int i = -1; i < 2; i++) {
				for (int j = -1; j < 2; j++) {
					// if the square is not a valid square
					// (the startpoint can be in a corner)
					// then we do not need to test it
					if (isValidSquare(new Point(point.x - i, point.y - j))) {
						// Returns false if any of the adjecent tiles are
						// occupied
						if (isOccupied(point.x - i, point.y - j)) {
							return false;
						}
					}
				}
			}
			return true;
		} else {
			return false;
		}
	}