使用随机变量来定义生成的最大数量
Posted
技术标签:
【中文标题】使用随机变量来定义生成的最大数量【英文标题】:using a variable in random to define max number generated 【发布时间】:2020-02-09 15:25:03 【问题描述】:我正在尝试制作一个不和谐的机器人,让用户与用户一起掷骰子一个用户定义的最大数字
if(cmd === `$prefixroll`|| cmd === `$prefixRoll`)
let ag = cmd.slice(5);
message.channel.send("Roll The Dice!");
var roll = Math.floor((Math.random()* ag) + 1);
message.channel.send(roll);
将“Math.random()* ag”中的 ag 替换为 10 之类的东西会起作用,如果我如何让它使用 var,我会感到困惑 这不起作用,并且不会在终端中返回任何错误
【问题讨论】:
cmd
的样本值是多少?是否进入if
块?
【参考方案1】:
问题在于ag
的值。如果您滑动cmd
,它将是一个字符串
我假设您想在1-6
之间创建一个随机数
在这种情况下,你可以这样做
if(cmd === `$prefixroll`|| cmd === `$prefixRoll`)
var ag = 6; // slice returns a string and the random generator works with a number.
message.channel.send("Roll The Dice!");
var roll = Math.floor((Math.random()* ag) + 1);
message.channel.send(roll);
更新
如果用户在 cmd 中指定一个数字为!roll20
,则上面的代码根本不会执行,因为 if (cmd ===$prefixroll
) 检查
if(cmd.startsWith(`$prefixroll`) || cmd.startsWith(`$prefixRoll`))
var ag = /\d+/g.exec(cmd); // get the digits in the value
ag = ag ? ag[0] : 6 // check if there is a value or default to 6
message.channel.send("Roll The Dice!");
var roll = Math.floor((Math.random()* ag) + 1);
message.channel.send(roll);
【讨论】:
所以如果用户剂量!roll20 我怎么能把 20 变成一个 intiger 如果它解决了您的问题,请考虑接受答案 我会试试这个给我一点时间以上是关于使用随机变量来定义生成的最大数量的主要内容,如果未能解决你的问题,请参考以下文章