private double getTypicalCost(Location startLoc, Location goalLoc) {
		int left = Math.min(startLoc.x, goalLoc.x);
		int top = Math.min(startLoc.y, goalLoc.y);
		int right = Math.max(startLoc.x, goalLoc.x);
		int bottom = Math.max(startLoc.y, goalLoc.y);

		int count = 0;
		int sum = 0;
		for (int i = left; i <= right; i++) {
			for (int j = top; j <= bottom; j++) {
				int value = grid[i][j];
				if (value != Constants.NOTHING) {
					sum += costs[value];
					count++;
				}
			}
		}

		return (double) sum / (double) count / 1.1;
	}