Итак, я пытаюсь сравнить расположение строк/столбцов из двух элементов, чтобы увидеть, смежны ли они. После долгих поисков я не смог найти то, что искал по подобным вопросам на SO.Сравнение двух элементов в 2D-массиве
В любом случае, мой главный вопрос касается только синтаксиса одной из моих строк кода. Итак, вот что у меня есть:
private boolean adjacent(int row, int col)
{
boolean adjacent = true;
Dot d2 = gameArray[row][col];
Descriptor D2 = new Descriptor (row, col, d2);
Descriptor D1 = list.get(list.size()-1);
if (D1.row() == D2.row() && D1.col() == D2.col() +1) {
adjacent = true;
}
return adjacent;
}
В основном то, что я смотрю на это if
ряд. Я хочу сохранить его простым и проверить, является ли местоположение элемента D2 0//- 1. Поэтому я хотел использовать абсолютное значение, но не как метод ArrayList, просто что-то простое, например |1|
или что-то в этом роде.
Как бы реализовать это в == D2.col()
части инструкции if
?
Благодаря
Таким образом, это работает как слева, так и справа от элемента, а также выше и ниже? – Muldawg2020
btw, THEY считаются смежными, если они находятся в одном столбце в соседних строках. В основном они считаются смежными, если элемент находится непосредственно сверху, снизу, слева или справа от другого. Только диагонали не считаются соседними. – Muldawg2020
В этом случае первая строка в моем ответе будет работать. Если два элемента смежны, либо 'abs' их xs, либо' abs' их ys равен единице, а другой равен нулю (поскольку диагонали не смежны), и поэтому сумма этих 'abs' равна одной - именно то, что проверяет эта строка кода. – Ishamael