随机取数问题
随机取数问题以下脚本:
MOVR N1 0 10
需要在10的范围内取3个不相同的数,
想脚本简单一点,感谢各位大屌!
比如取出 1 3 5 三个数,反正取出要不相同,看了下红包脚本,感觉太繁琐了!
;这是我的脚本,感觉比较繁琐。。有没用再简单一点的。。
[@测试]
#IF
#ACT
MOVR N40 0 10
GOTO @测试2
[@测试2]
#IF
#ACT
MOVR N41 0 10
#IF
EQUAL N41 <$STR(N40)>
#ACT
GOTO @测试2
BREAK
#IF
#ACT
GOTO @测试3
BREAK
[@测试3]
#IF
#ACT
MOVR N42 0 10
#OR
EQUAL N42 <$STR(N40)>
EQUAL N42 <$STR(N41)>
#ACT
GOTO @测试3
BREAK
#IF
#ACT
SENDMSG 7 <$STR(N40)>,<$STR(N41)>,<$STR(N42)>
BREAK [@测试]
#IF
#ACT
MOV S1
MOV N41 0
MOVR N40 0 10
Goto @11
[@11]
#IF
CheckContainsText S1 <$STR(N40)>,
#ACT
MOVR N40 0 10
Goto @11
Break
#ELSEACT
INC N41 1
INC S1 <$STR(N40)>,
#IF
;随机多少个.
SMALL N41 3
#ACT
MOVR N40 0 10
Goto @11
Break
#ELSEACT
SENDMSG 7 共<$STR(n41)>个数,结果:<$str(S1)>
瞎几把写........... 功能说明:获取一组不相同的随机数
GetMultiRandomNumber 最小值 最大值 数量(最多200) 变量(不输入括号的变量,非自定义变量,如:N1) 保存实际获取数量的变量
示范:
[@Main]
#IF
#ACT
GetMultiRandomNumber 100 1000 10 N1 M1
SENDMSG 6 获取10个不一样的随机数,范围在100到1000之间,保存在N1~N10变量里,实际获取到随机数的数量为:<$STR(M1)>
SENDMSG 6 N1=<$STR(N1)>
SENDMSG 6 N2=<$STR(N2)>
SENDMSG 6 N3=<$STR(N3)>
SENDMSG 6 N4=<$STR(N4)>
SENDMSG 6 N5=<$STR(N5)>
SENDMSG 6 N6=<$STR(N6)>
SENDMSG 6 N7=<$STR(N7)>
SENDMSG 6 N8=<$STR(N8)>
SENDMSG 6 N9=<$STR(N9)>
SENDMSG 6 N10=<$STR(N10)>
复制代码 batmanljy 发表于 2023-5-15 16:54
我用的老GOM搭配ESP。没这个命令。 能满足你的要求,只是需要读文本取写入
#IF
#ACT
GETRANDOMLINETEXT ..\\QuestDiary\\0-10.txt <$STR(S0)>
DelTextList ..\\QuestDiary\\0-10.txt <$STR(S0)>
GETRANDOMLINETEXT ..\\QuestDiary\\0-10.txt <$STR(S1)>
DelTextList ..\\QuestDiary\\0-10.txt <$STR(S1)>
GETRANDOMLINETEXT ..\\QuestDiary\\0-10.txt <$STR(S2)>
DelTextList ..\\QuestDiary\\0-10.txt <$STR(S2)>
SENDMSG 7 随机取值:<$STR(S0)>,<$STR(S1)>,<$STR(S2)>
CLEARNAMELIST ..\\QuestDiary\\0-10.txt
AddTextList ..\\QuestDiary\\0-10.txt 0
AddTextList ..\\QuestDiary\\0-10.txt 1
AddTextList ..\\QuestDiary\\0-10.txt 2
AddTextList ..\\QuestDiary\\0-10.txt 3
AddTextList ..\\QuestDiary\\0-10.txt 4
AddTextList ..\\QuestDiary\\0-10.txt 5
AddTextList ..\\QuestDiary\\0-10.txt 6
AddTextList ..\\QuestDiary\\0-10.txt 7
AddTextList ..\\QuestDiary\\0-10.txt 8
AddTextList ..\\QuestDiary\\0-10.txt 9
AddTextList ..\\QuestDiary\\0-10.txt 10 Sunny 发表于 2023-5-17 21:35 能满足你的要求,只是需要读文本取写入
#IF
[@测试]
#IF
ISADMIN
#ACT
CLEARNAMELIST ..\\QUESTDIARY\\Wan功能\\111.TXT
MOV N1 0
WHILE N1 < <$STR(G101)>
ADDTEXTLIST ..\\QUESTDIARY\\WAN功能\\111.TXT <$STR(N1)>
INC N1 1
ENDWHILE
GETRANDOMLINETEXT ..\\QUESTDIARY\\Wan功能\\111.TXT <$STR(S0)>
DELTEXTLIST ..\\QUESTDIARY\\Wan功能\\111.TXT <$STR(S0)>
GETRANDOMLINETEXT ..\\QUESTDIARY\\Wan功能\\111.TXT <$STR(S1)>
DELTEXTLIST ..\\QUESTDIARY\\Wan功能\\111.TXT <$STR(S1)>
GETRANDOMLINETEXT ..\\QUESTDIARY\\Wan功能\\111.TXT <$STR(S2)>
DELTEXTLIST ..\\QUESTDIARY\\Wan功能\\111.TXT <$STR(S2)>
SENDMSG 7 随机取值:<$STR(S0)>,<$STR(S1)>,<$STR(S2)>
BREAK
我实验了一下,爽歪歪。。。 [@测试]
#IF
#ACT
MOV S1
MOV N41 0
MOVR N40 0 10
Goto @11
[@11]
#IF
CheckContainsText S1 <$STR(N40)>,
#ACT
MOVR N40 0 10
Goto @11
Break
#ELSEACT
INC N41 1
INC S1 <$STR(N40)>,
#IF
;随机多少个.
SMALL N41 3
#ACT
MOVR N40 0 10
Goto @11
Break
#ELSEACT
SENDMSG 7 共<$STR(n41)>个数,结果:<$str(S1)>
瞎几把写........... 功能说明:获取一组不相同的随机数
GetMultiRandomNumber 最小值 最大值 数量(最多200) 变量(不输入括号的变量,非自定义变量,如:N1) 保存实际获取数量的变量
示范:
[@Main]
#IF
#ACT
GetMultiRandomNumber 100 1000 10 N1 M1
SENDMSG 6 获取10个不一样的随机数,范围在100到1000之间,保存在N1~N10变量里,实际获取到随机数的数量为:<$STR(M1)>
SENDMSG 6 N1=<$STR(N1)>
SENDMSG 6 N2=<$STR(N2)>
SENDMSG 6 N3=<$STR(N3)>
SENDMSG 6 N4=<$STR(N4)>
SENDMSG 6 N5=<$STR(N5)>
SENDMSG 6 N6=<$STR(N6)>
SENDMSG 6 N7=<$STR(N7)>
SENDMSG 6 N8=<$STR(N8)>
SENDMSG 6 N9=<$STR(N9)>
SENDMSG 6 N10=<$STR(N10)>
复制代码 batmanljy 发表于 2023-5-15 16:54
我用的老GOM搭配ESP。没这个命令。
页:
[1]
2