找回密码
 立即注册
查看: 310|回复: 18

随机取数问题

[复制链接]

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
发表于 2026-3-27 11:49:38 | 显示全部楼层 |阅读模式
随机取数问题
以下脚本:
MOVR  N1 0 10
需要在10的范围内取3个不相同的数,
想脚本简单一点,感谢各位大屌!
比如取出 1 3 5 三个数,反正取出要不相同,看了下红包脚本,感觉太繁琐了!

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
;这是我的脚本,感觉比较繁琐。。有没用再简单一点的。。
[@测试]
#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

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
[@测试]
#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)>
瞎几把写...........

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
    功能说明:获取一组不相同的随机数

    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)>


复制代码

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
batmanljy 发表于 2023-5-15 16:54
我用的老GOM搭配ESP。没这个命令。

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
能满足你的要求,只是需要读文本取写入
#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

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
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
我实验了一下,爽歪歪。。。

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
[@测试]
#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)>
瞎几把写...........

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
    功能说明:获取一组不相同的随机数

    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)>


复制代码

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 11:49:38 | 显示全部楼层
batmanljy 发表于 2023-5-15 16:54
我用的老GOM搭配ESP。没这个命令。

© 2026 折翼天使社区 版权所有