随机函数math.random的用法

发布于 2020-12-18 21:37:19

有时候,我们可能希望脚本可以随机化一点,表现的能像是真人在操作,而不要太机械,比如循环点击一个点的时候,能够每次点击的位置能稍微变化一点,这个时候可以试用lua的math.random()函数,这个比如如下代码:

随机的时候必须有一个种子.否则每次随机都会是一样的.
math.randomseed(tostring(os.time()):sub(5):reverse()); -- 随机种子
math.random(-5, 5);

每次都可以返回-5到5之间随机的一个数,那么我们可以将点击操作写一个函数:

function click(x, y)
    touch.down(0, x + math.random(-5, 5), y + math.random(-5, 5));
    sys.sleep(math.random(1000, 2000));
    touch.up(0);
end

然后在需要点击时之间调用这个函数,比如找图时:

 x, y = screen.findImage("/var/touchelf/a.png");
    if x ~= -1 and y ~= -1 then
        click(x, y);
    end

这样每次循环点击的位置都是有小幅变化的,而不是每次都是点击一个点。

自定义字符串随机:

function randomStr(str, num)
    local reStr ='';
    math.randomseed(tostring(os.time()):sub(5):reverse());
    for i = 1, num do
        local getStr = math.random(1, string.len(str));
        reStr = reStr .. string.sub(str, getStr, getStr);
    end
    return reStr;
end
--用法
s = randomStr("abcdefghijklmnopqrstuvwxyz", 10) --生成10位随机字母
0 条评论

发布
问题