private static final int X_SIZE = 3;
private static final int Y_SIZE = 3;
private static int sumAdj(int x, int y, int[][] array) {
int sum = 0;
for (int i = Math.max(x-1, 0); i <= Math.min(x+1, X_SIZE -1); i++) {
for (int j = Math.max(y-1, 0); j <= Math.min(y+1, Y_SIZE-1); j++) {
sum += array[i][j];
}
}
return sum;
}
По сути, вы хотите зациклить квадрат, центром которого является указанная вами точка, это означает, что min x - это x-1 вашего центра, а max x - это x + 1 вашего центра, то же самое для y. Я использую Math.min и Math.max, чтобы учесть границы, вы можете определить ваши минимальные и максимальные координаты вне цикла for, используя операторы if, но я считаю этот способ более элегантным.