我想在范围之间生成一个随机数。这是一个不和谐的机器人。
因此,如果有人想生成一个随机数,则需要写!rn min max
例如:!rn 1 10
。最小和最大数将传递到名为args的数组。
min
在args[0]
中,而max
在args[1]
中。现在,我想让机器人使用args[0]
和args[1]
发送随机数。这是我尝试做的事情:
if (msg.startsWith(prefix + 'RANDOMNUM') || msg.startsWith(prefix + 'RN')) {
message.channel.send(Math.floor(Math.random() * (args[1] - args[0] + 1)) + args[0]);
}
它检查是否有人写!rn
或!randomnum
,然后应该在args[0]
和args[1]
之间生成一个随机数。
现在有两个问题。
第一个是如果最小编号为1,则漫游器将发送用户编写的最大编号。因此,如果我写!rn 1 5
,无论您尝试多少次,它都会发送数字5。
第二个问题,如果最小数字不为1,它将采用最小数字,将其设置为1,然后将最大数字加到该数字上。听起来很奇怪,但这是一个示例:
如果我写!rn 4 8
,它将发送18。如果我写!rn 2 5
,它将发送15。
我在做什么错了?
答案 0 :(得分:0)
您必须反转数字。应该是:
Math.floor(Math.random() * (args[1] - args[0])) + args[0]);