按键精灵-随机获取不重复内容

一般利用数组功能可以实现万能随机, 也就是不管你想随机取什么内容, 都可以实现, 现在需求多了不重复, 也就意味着每次随机都要针对数组内容进行删除, 按键精灵中删除数组元素的方法是对其赋值为null即可删除, 但是删除后, 下标不会变化, 所以我们还需要让他的下标移动, 具体方法如下:

//初始化随机种子, 只要调用一次, 但是这里强烈推荐使用紫猫插件的随机功能
Randomize
Dim 随机数组 = {"aaa", "bbb", "ccc", "ddd", "eee"}
 
//测试效果, 其实这也是一种洗牌方法, 把随机出来的加入到新数组中, 数组元素顺序就打乱了.
TracePrint 取不重复随机(随机数组)
TracePrint 取不重复随机(随机数组)
TracePrint 取不重复随机(随机数组)
TracePrint 取不重复随机(随机数组)
TracePrint 取不重复随机(随机数组)
TracePrint 取不重复随机(随机数组)
 
 
//参数为数组, 返回一个随机到的内容
Function 取不重复随机(数组)
     If Ubound(数组) = -1 then
           TracePrint "数组里没有元素了, 返回null"
           Exit Function
     End If
     Dim 下标 = Random(0, Ubound(数组))
     Dim 随机内容 = 数组(下标)
     //这是一个关键循环, 要把后面元素覆盖前面元素, 实现移动数组元素
     For i = 下标 to Ubound(数组)
           数组(i) = 数组(i+1)
     Next
     取不重复随机 = 随机内容
End Function
 
 
//随机获取一个数字函数, 同样强烈推荐使用紫猫插件的随机取数
Function Random(min, max)
      Random = Int((max-min+1)*Rnd()+min)
End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值