具有范围的Java if语句
假设红色=200,绿色=190,蓝色=210 那老鼠在哪里 我的问题是,红色、绿色和蓝色每次都会改变,但它们总是彼此接近,例如红色=230,蓝色=250,绿色=240 我想创建一个具有范围的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
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);
}