gpt4 book ai didi

java - 帮助简单的方法,Java

转载 作者:行者123 更新时间:2023-11-29 06:46:38 25 4
gpt4 key购买 nike

这真是一个愚蠢的问题,但我已经盯着这个问题看了太久,我只是想不出问题是什么:

/**
* public boolean overlap(int targetX, int targetY) {
* Returns true if the target position is sufficient close to this ghost
* If target position is 16 pixels or less in the x direction
* and similarly in y direction, return true. Otherwise return false
*
* @param targetX
* @param targetY
* @return
*/
public boolean overlap(int targetX, int targetY){
double x=this.getX();
double y=this.getY();
double deltaX=targetX-x;
double deltaY=targetY-y;
if(deltaX<=16 && deltaX>=0 && deltaY<=16 && deltaY>=0)
return true;
else
return false;
}

这应该行得通吧?但事实并非如此。如果我运行这个测试,它会失败 assertTrue。 (g1.x=100 和 g1.y=1000)

    double theta = 2 * Math.PI * Math.random();
int x = 100 + (int) (16 * Math.cos(theta));
int y = 1000 + (int) (16 * Math.sin(theta));
assertTrue(g1.overlap(x, y));

有人看到我没看到的东西吗?

最佳答案

根据overlap方法的javadoc,需要取targetX-xtargetY-y的绝对值,并且如果两者都小于或等于 16,则返回真。

所以它看起来像:

public boolean overlap(int targetX, int targetY){
double x=this.getX();
double y=this.getY();
double deltaX = Math.abs(targetX-x);
double deltaY = Math.abs(targetY-y);

return (deltaX<=16 && deltaY<=16);
}

关于java - 帮助简单的方法,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com