我一直在使用Java Robot 类来编写程序,将鼠标移动到像素区域之间的随机位置 . 正如你们中的一些人所知, moveMouse 方法的作用是 moveMove(x,y) ,其中x是水平像素数,y是垂直像素数 . 然后,我会使用math.random来计算一个随机数生成器,让程序单击屏幕上矩形部分中的随机像素 . 这条线看起来像这样(数字是任意值)

robot.mouseMove(randomNum(350,400),randomNum(350,400)

它将在x方向上的像素350-400之间进行拾取 . 和y方向350-400 . 虽然,我遇到的问题是,最终经过几百到1000次迭代后,点击的散点图看起来......不是那么随机:

"random" clicks

所以我想我会通过添加2个数组来解决这个问题,这些数组保存我想要的相应x和y值的像素值,并通过重复像素数来添加加权RNG,这样就有更高的机会去那些像素 . 但我仍然看到一个不自然的散点图 . 这是我的代码:

private static int[] items = new int[] 
{/*insert x coord pixels*/ };
    private static Random rand = new 
Random();

    public static int getRandArrayElement() 
 {
        return 
 items[rand.nextInt(items.length)];
    }


    private static int[] items2 = new int[] 
{/*insery y coord pixels*/};
    private static Random rand2 = new 
Random();

    public static int 
getRandArrayElement2(){
        return 
items2[rand2.nextInt(items2.length)];
    } 



robot.mouseMove(getRandArrayElement(),getRandArrayElement2());
robot.mousePress(button);
robot.delay(randomNum(11,32));
robot.mouseRelease(button);
robot.delay(randomNum(11,32));

这个代码仍然具有与上一个相同的约束,无论如何,我的散点图仍将类似于某种矩形 . 有没有办法我可以制作一个列表,其中每个值都有一个可读的x和y值,所以我可以通过省略某些像素硬编码加权RNG,这样我就可以选择散点图类似的形状?我想让它看起来更像这样:

More random looking click plot

因此,如果有人有任何他们想要分享的有用信息,我会全力以赴 . 干杯 . :)