如何确保两个对象在 Java 中没有相同的坐标?



我必须编写一个方法,确保两个对象不在彼此的位置上。这些物体的坐标必须随机生成。

我的想法是用getX((&getY((方法,生成新的坐标,直到两个对象不在同一地点。

像这样:

int x = getRandom(x);
int y = getRandom(y);
while(object1.getX() == object2.getX() && object1.getY() == object2.getY()){
int x = getRandom(min, max);
int y = getRandom(min, max);
}

代码在大多数情况下都有效。我没有收到任何错误消息,但在交互窗口中可以看到,该规则并不总是适用的。有人可能知道我做错了什么吗?

您的想法是正确的,但您没有两个对象,只有一个对象和一对int变量。您可以使用do-while循环来稍微缩短代码:

int x, y;
do {
x = getRandom(min, max);
y = getRandom(min, max);
} while (x == object.getX() && y == object.getY());

当循环终止时,点(x,y(保证与点(object.getX((,object.getY(((不同。

当然,最好使用适当的抽象,例如Point来表示一对坐标。

相关内容

  • 没有找到相关文章

最新更新