所以我试图比较2个元素的行/列位置,看看它们是否相邻。经过大量的搜索,我找不到我在SO上的类似问题上寻找的东西。
无论如何,我的主要问题只是关于我的一行代码的语法。所以这就是我所拥有的:
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的col
位置是否为+/- 1.所以我想使用绝对值,但不是像ArrayList方法那样,只是像|1|
那样简单的东西。
我如何将其实现到== D2.col()
声明的if
部分?
由于
答案 0 :(得分:3)
一种方法是:
if (Math.abs(D1.row() - D2.row()) + Math.abs(D1.col() - D2.col()) == 1)
两个非负整数的总和为1,当且仅当它们中的一个等于1而另一个等于零时,恰好是你想要的。
编辑:现在我更仔细地阅读了你的问题,我意识到如果它们在相邻行的同一列中,你不会考虑相邻的两个元素。然后声明更简单:
if (D1.row() == D2.row() && Math.abs(D1.col() - D2.col()) == 1)