Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有范围的Java if语句_Java_Colors_Awtrobot - Fatal编程技术网

具有范围的Java if语句

具有范围的Java if语句,java,colors,awtrobot,Java,Colors,Awtrobot,假设红色=200,绿色=190,蓝色=210 那老鼠在哪里 我的问题是,红色、绿色和蓝色每次都会改变,但它们总是彼此接近,例如红色=230,蓝色=250,绿色=240 我想创建一个具有范围的if语句 if (color.getRed()== 131 && color.getGreen() == 115 && color.getBlue() == 91) { robot.mousePress(MouseEvent.BUTTON1_MASK); robot.mouse

假设红色=200,绿色=190,蓝色=210 那老鼠在哪里

我的问题是,红色、绿色和蓝色每次都会改变,但它们总是彼此接近,例如红色=230,蓝色=250,绿色=240

我想创建一个具有范围的if语句

if (color.getRed()== 131 && color.getGreen() == 115 && color.getBlue() == 91)
{
robot.mousePress(MouseEvent.BUTTON1_MASK);
robot.mouseRelease(MouseEvent.BUTTON1_MASK);
System.out.println("click");
}

因此,如果红色、绿色和蓝色被20个点分开,它将执行括号中的操作。

您可以使用减法运算来获得差异,您可以使用来获得差异始终为正值。

您可以为此创建一些辅助方法

private boolean inColorRange(int color1, int color2) {
    return Math.abs(color2-color1) <= 10;
}
int delta=20;
if(在范围内(color.getRed()、color.getGreen()、delta)&&
withinRange(color.getRed()、color.getBlue()、delta)&&
withinRange(color.getGreen(),color.getBlue(),delta)){
机器人。鼠标按下(鼠标事件。按钮1_面具);
robot.mouseerelease(MouseEvent.BUTTON1_面具);
System.out.println(“单击”);
}
带InRange的私有布尔值(int color1、int color2、int delta){

return((Math.abs((color1-color2))在if语句中,在哪里使用abs值?
if (inColorRange(color.getRed(), color.getBlue()) && 
    inColorRange(color.getBlue(), color.getGreen()) {
    // Do something here if red and blue are within 10, and blue and
    // green are within 10
}
int delta = 20;

if(withinRange(color.getRed(), color.getGreen(), delta) &&
  withinRange(color.getRed(), color.getBlue(), delta) &&
  withinRange(color.getGreen(), color.getBlue(), delta)){
  robot.mousePress(MouseEvent.BUTTON1_MASK);
  robot.mouseRelease(MouseEvent.BUTTON1_MASK);
  System.out.println("click");
}


private boolean withinRange(int color1, int color2, int delta){
  return ((Math.abs((color1 - color2)) <= delta);
}