|
|
发表于 2019-2-10 00:19:36
|
显示全部楼层
广东省佛山市
这个是我写的抽奖代码~
自定义数据类型表-------
.版本 2
.数据类型 Record
.成员 ID, 整数型
.成员 Name, 文本型
.数据类型 Surplus
.成员 Name, 文本型, , "1"
.成员 Nums, 整数型, , "1"
自定义数据类型表-------
代码部分------------------
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 Record, Record, , "0"
.子程序 __启动窗口_创建完毕
.如果真 (初始化 () = 真)
抽奖 ()
.如果真结束
.子程序 抽奖
.局部变量 Count, 整数型
置随机数种子 ()
.计次循环首 (100, Count)
调试输出 (Record [取随机数 (1, 取数组成员数 (Record))].ID, Record [取随机数 (1, 取数组成员数 (Record))].Name)
.计次循环尾 ()
.子程序 初始化, 逻辑型
.局部变量 Name, 文本型, , "0", 奖品
.局部变量 Probability, 双精度小数型, , "0", 概率
.局部变量 Tmp, 文本型
.局部变量 Count, 整数型
.局部变量 Multiplier, 整数型
.局部变量 Int, 双精度小数型, , "2"
.局部变量 Surplus, Surplus
置随机数种子 ()
Name = { “谢谢参与”, “10元”, “100元”, “1000元”, “10000元” }
Probability = { 0.9345, 0.05, 0.01, 0.005, 0.0005 }
.如果真 (取数组成员数 (Name) ≠ 取数组成员数 (Probability))
调试输出 (“抽奖程序出现问题,请销后再试!”)
返回 (假)
.如果真结束
.计次循环首 (取数组成员数 (Name), Count)
Int [1] = Int [1] + Probability [Count]
.计次循环尾 ()
.如果真 (Int [1] ≠ 1)
调试输出 (“抽奖概率有误!”)
返回 (假)
.如果真结束
Multiplier = 1
.计次循环首 (取数组成员数 (Name), Count)
.判断循环首 (真)
Int [1] = 到数值 (Probability [Count] × Multiplier)
Int [2] = 到整数 (Int [1])
.如果真 (Int [1] ≠ Int [2])
Multiplier = Multiplier × 10
.如果真结束
.如果真 (Int [1] = Int [2])
跳出循环 ()
.如果真结束
.判断循环尾 ()
.计次循环尾 ()
调试输出 (Multiplier)
重定义数组 (Surplus.Name, 假, 取数组成员数 (Name))
重定义数组 (Surplus.Nums, 假, 取数组成员数 (Name))
.计次循环首 (取数组成员数 (Name), Count)
Surplus.Name [Count] = Name [Count]
Surplus.Nums [Count] = Probability [Count] × Multiplier
.计次循环尾 ()
重定义数组 (Record, 假, Multiplier)
.计次循环首 (Multiplier, Count)
.判断循环首 (真)
Int [1] = 取随机数 (1, 取数组成员数 (Name))
.如果真 (Surplus.Nums [Int [1]] ≠ 0)
Record [Count].ID = Count
Record [Count].Name = Name [Int [1]]
Surplus.Nums [Int [1]] = Surplus.Nums [Int [1]] - 1
跳出循环 ()
.如果真结束
.判断循环尾 ()
' Tmp = Tmp + 到文本 (Record [Count].ID) + “-” + Record [Count].Name + “ ”
.计次循环尾 ()
' 置剪辑板文本 (tmp)
调试输出 (“初始化成功”)
返回 (真)
代码部分------------------
|
|