我正在制作一个无限点击特定位置的程序。我使用以下代码将这些点击随机化:
public void leftClick() {
int no = random.nextInt(5) + 1;
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(50 * no);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(250 * no);
}
这是使用leftClick()方法的循环(整数o在程序中上面初始化):
while (running) {
leftClick();
o++;
System.out.println(new Date() + " " + o);
}
在我的程序中实现时,此“点击”会一直打开,每次点击之间会有随机暂停。我对它进行了测试,结果是每分钟大约35-45次点击。有没有办法让我的程序点击例如,一分钟35次,然后下一次70-80?
答案 0 :(得分:1)
这是一个选项:
public class Foo {
long startTime = 0;
long lastMinCount = 1;
int multiplier = 50;
public void leftClick() {
long currentTime = System.currentTimeMillis();
if (startTime==0) {
startTime = currentTime;
}
else {
if (currentTime / startTime > lastMinCount) {
lastMinCount = currentTime / startTime;
multiplier = 10 * (random.nextInt(5) + 1);
}
}
int no = random.nextInt(5) + 1;
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(multiplier * no);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(4 * multiplier * no);
}
}
你可以试试这个
答案 1 :(得分:0)
要获取特定范围内的随机数,您可以执行以下操作:
给定范围[a,b](从a到b)包括以下内容:
interval = b - a + 1
randnumvalue = get random number from [0,0, 1.0)
result = a + interval*randomvalue
要处理不同的范围,请保存开始时间并确定您所在的“分钟”并选择适当的范围以应用上述伪代码。
答案 2 :(得分:0)
您可以执行以下操作
leftClick(boolean flag){
int no = random.nextInt(10)
if(flag == false){
no = 35+ no; // This will always give you a number between 35 and 45
flag = true;
}else{
no = 70 + no;
}
}
所以每当你用布尔值调用这个方法时,你得到35到45之间没有,否则70-80
答案 3 :(得分:0)
public void leftClick(int noOfClicksPerMinute) {
if(noOfClicksPerMinute >35 && noOfClicksPerMinute < 45){
int no = random.nextInt(35) + 10;
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(50 * no);//change and set appropriate delay
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(250 * no);//change and set appropriate delay
}
else{
int no = random.nextInt(70) + 10;
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(50 * no);//change and set appropriate delay
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(250 * no);//change and set appropriate delay
}