То есть вы хотите иметь логику в зависимости от того, какая строка или столбец?Давайте попробуем это структурированным образом.
Помните, что массивы индексируются 0, поэтому, если у вас есть массив с 20 слотами, они нумеруются 0,1,2 ... 18,19.
В этом случае вам нужен другой цвет, если вы включаете первые две строки или одну из последних двух строк или включаете первые два столбца или один из последних двух столбцов (длинное предложение),
Color color = Color.BLACK; // Default color
if ( (row >= 0 && row <= 1) || (row >= 18 && row <= 19) (col >= 0 && col <= 1) || (col >= 18 && col <= 19)) {
color = Color.RED;
}
square = new Square(...
Но чтобы сохранить это, вы, вероятно, должны разбить логику на отдельный метод, чтобы получить более читаемый код, это пример:
Color color = Color.BLACK; // Default color
if ( isBorder(col, row)) {
color = Color.RED;
}
...
private boolean isBorder(int col, int row) {
return (row >= 0 && row <= 1) || (row >= 18 && row <= 19) (col >= 0 && col <= 1) || (col >= 18 && col <= 19);
}
Конечно, это может быть дополнительно очищеновверх, но это начало, и теперь легче читать логику создания вашей доски.