极验滑块轨迹生成 3、4通用


最近在看极验的滑块分享一下轨迹生成代码,写得垃圾烦请大佬见谅
代码在最后!!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、他的轨迹

在这里插入图片描述
第一个数组是随机的,在我看x的区间大概在-50到-20之间,y在-200到-100之间所以我的代码里区间在这个范围内,也可以更改
第二个数组固定[0,0,0]
第三个数组在的时间我设置的区间为100到180

然后就是他会重复坐标 就像图里索引为3、4的数组 x在2上重复了一次

二、效果

在这里插入图片描述
要注意一点四代滑块中如果数组数量超过了160 那么只取前面160个后面的都不要了,时间还是总的时间没变

这里只测试了20次,成功率看看就行了
在这里插入图片描述

三、代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time    : 2022/11/06 20:03
# @Author  : HMP
# @FileName: 轨迹生成2.py
# @Software: PyCharm
import random

def get_slide_track2(x):
    # 初始化轨迹列表
    slide_track = [
        [random.randint(-50, -20), random.randint(-200, -100), 0],
        [0, 0, 0],
    ]

    if x < 100:
        move_section = 1 #如果移动距离小于100 那么move次数为x加上 720之间的数
    else:
        move_section = 2 #如果移动距离小于100 那么move次数为x加上 2720之间的数

    up_down = random.randint(0, 1) #确定一个方向 x大于0或x小于0
    y = 0  #数组的y值
    time = random.randint(100,180)  #初始时间 即为第二个数组的时间  后续时间累加操作就可以了
    count = 0
    flag = 0
    repetition = int(x/4)  #重复x出现的个数
    frist_count = random.randint(6,10) #前面y为0的数组个数
    for i in range(x*random.randint(move_section*7,move_section*21)): #move_section 在这里起作用
        if i+1 > x: #如果i+1要等于x 或者小于x 但这里基本上都是等于x
            break
        if up_down == 0:  #up_down如果大于0 那么这个轨迹就是y增轨迹
            if i >frist_count:
                if count==0:
                    y += random.randint(0, 1)
                    count +=1
                if flag>random.randint(8,10):
                    count = 0
                    flag = 0
                if i + 1 > int(x / 5)*4:
                    time += random.randint(20, 70)
                elif i+1 > x-3:
                    time += random.randint(80, 180)
                else:
                    time += random.randint(0,5)
                slide_track.append([i+1,y,time])
                flag+=1
                if random.randint(0,1):
                    if repetition:
                        slide_track.append([i + 1, y, time+random.randint(0,3)])
                        flag += 1
                        repetition -= 1
            else:  #前面几个数组y都为0
                time += random.randint(0, 5)
                slide_track.append([i + 1, y, time])
                if random.randint(0,1):
                    if repetition:
                        slide_track.append([i + 1, y, time+random.randint(0,3)])
                        repetition -= 1

        if up_down == 1:  #up_down如果小于0 那么这个轨迹就是y减轨迹
            if i > frist_count:
                if count==0:
                    y -= random.randint(0, 1)
                    count +=1
                if flag>random.randint(8,10):
                    count = 0
                    flag = 0
                if i + 1 > int(x / 5)*4:
                    time += random.randint(7, 40)
                elif i+1 > x-3:
                    time += random.randint(80, 180)
                else:
                    time += random.randint(0, 5)
                slide_track.append([i+1,y,time])
                flag +=1
                if random.randint(0,1):
                    if repetition:
                        slide_track.append([i + 1, y, time+random.randint(0,3)])
                        flag += 1
                        repetition -= 1
            else:
                time += random.randint(0, 5)
                slide_track.append([i + 1, y, time])
                if random.randint(0,1):
                    if repetition:
                        slide_track.append([i + 1, y, time+random.randint(0,3)])
                        repetition -= 1

    return slide_track

for i in get_slide_track2(178):
    print(i,end=',')
    # print(',')

总结

当然轨迹生成的方法并不只是这一个,像其他的什么缩放法,

copy法
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值