如何使用双格式数字编写范围之间的随机间隔代码?

时间:2017-05-27 06:32:46

标签: java random int double range

我正在尝试编写一个使用 thread.sleep()的程序,它只允许整数。我的问题是如何使用该范围之间的所有数字创建一个程序,该程序将在2.5-3.5秒(或使用double的任意随机范围)范围内获取一个随机数。我试图用它来创建一个随机自动点击器,用于理解转换这些数据类型。任何帮助,将不胜感激。谢谢!

这就是我所拥有的一切(道歉,如果这不是甚至关闭我使用了所有可以找到帮助的信息。)

    Robot bot = new Robot();

    int rangeMin=2.5, rangeMax=3.5, pressMax = 0, pressMin = 0;

    int randomvalue1 = (r.nextInt() * ((pressMax - pressMin) + 1)) + pressMin;
    int randomValue2 = (r.nextInt() * ((rangeMax - rangeMin) + 1)) + rangeMax;

    for (int x=0; x<3;x++);
        Thread.sleep(randomvalue1);
        bot.mousePress(InputEvent.BUTTON1_MASK);
        Thread.sleep(randomvalue2);
        bot.mouseRelease(InputEvent.BUTTON1_MASK);
    }

4 个答案:

答案 0 :(得分:1)

您的问题是衡量单位。

您的问题定义说明了2.5-3.5 ,并且您计算的randomvalue1randomvalue2包含

Thread.sleep()的参数必须是 毫秒数

因此,您需要将秒数转换为毫秒数,然后再将其传递给Thread.sleep()

答案 1 :(得分:0)

你太复杂了。

只需从

开始
int delayInMilliSeconds = 2500;

然后在该变量中添加0到1000之间的随机值。

然后睡了几毫秒。

完成。你有2.5到3.5秒的延迟。

答案 2 :(得分:0)

来自GhostCat的方法的Java代码示例:

Thread.sleep(2500 + ((int) (Math.random() * 1000)));

另请参阅Java API文档,例如:

答案 3 :(得分:0)

成品,固定。它使点击的长度随机,以及单击之间的等待。

Robot bot = new Robot();

    int rangeMin=2445, rangeMax=3550, pressMax = 100, pressMin = 80;

    for (int x=0; x<1620;x++) {
        int randomClick = (60+ (int) (Math.random()*100));
        int randomValue = (1800+ (int) (Math.random()*1000));
        int randomWait = (50+ (int) (Math.random()*100));

        Thread.sleep(randomValue);
        bot.mousePress(InputEvent.BUTTON1_MASK);
        Thread.sleep(randomClick);
        bot.mouseRelease(InputEvent.BUTTON1_MASK);

        Thread.sleep(randomWait);

        Thread.sleep(randomValue);
        bot.mousePress(InputEvent.BUTTON1_MASK);
        Thread.sleep(randomClick);
        bot.mouseRelease(InputEvent.BUTTON1_MASK);

        System.out.println(randomValue);
        System.out.println(randomClick);
        System.out.println(randomWait);