硬币翻转指令
Posted
技术标签:
【中文标题】硬币翻转指令【英文标题】:Coin flip command 【发布时间】:2018-12-30 12:08:45 【问题描述】:我昨天开始编写我的第一个 Discord 机器人,已经有一个掷骰子命令,现在想要一个掷硬币命令。
我将如何编码?
使用 Node.JS 和 Discord.JS 库。
【问题讨论】:
你让它生成一个介于 0 和 1 之间的随机数。如果它是 0,它是头部,如果它是 1,它是尾部。 【参考方案1】:if(command == "ht")
function doRandHT()
var rand = ['HEADS!','TAILS!'];
return rand[Math.floor(Math.random()*rand.length)];
const embed =
"title": `Here is the winner!`,
"description": doRandHT(),
"color": 7584788,
;
message.channel.send( embed );
;
您可以对 Discord.js 中的每个随机命令使用这个普通命令
警告:您可能需要对代码进行更改才能使其正常工作。有些使用不同的命令结构,不要指望它只是粘贴就可以工作。进行更改,查看您的其他命令并根据它们进行更改。
这是经过全面测试的随机命令。
【讨论】:
【参考方案2】:在您的命令中,您可以使用它来生成一个随机数(0
或 1
):Math.random()
为您提供一个介于 0 和 1 之间的数字(排除),而 Math.round()
将该数字四舍五入为 0或 1.
Math.round(Math.random()); //O or 1
然后您可以使用该号码在频道中发送正面或反面。
【讨论】:
【参考方案3】:如果您对 javascript 不了解,请转至Mozilla Developer Network (MDN)
如果您想了解有关 Discord.js 库的信息,请转至 the Discord.js Documentation 并使用右上角的搜索栏。
const Discord = require('discord.js');
const bot = new Discord.Client(
disableEveryone: true
);
//The 'message' event, emitted whenever somebody says something in a text channel
bot.on('message', async koolMessage =>
if (koolMessage.content.startsWith("coinflip"))
//If the message's content starts with "coinflip" run the following:
let outcomes = ["Heads", "Tails"];
//An array that has the possible outcomes from flipping a coin, heads and tails
let outcomesIndex = Math.round(Math.random() * outcomes.length);
//This will be what index of the outcomes array should be selected (arrays start at 0)
//Math.round() rounds the parameter inside, in this case, Math.random()
koolMessage.channel.send(outcomes[outcomesIndex]);
//'koolMessage' is what we decided to call the message in the 'message' event, above. It can be called whatever you'd like
//'channel' is the text channel in which 'koolMessage' was sent
//The send() function sends a message with the included argument (e.g. send("hello there!")). It must be sent in a channel, in this case, the channel in which the 'koolMessage' from the user was sent
//If we would have outcomes[0], the output would be "Heads", if we would have outcomes[1] the output would be "Tails", so we randomize it, giving us either outcomes[0] or outcomes[1]
);
bot.login('YOUR TOKEN');
【讨论】:
这个代码是不可执行的,你不应该使用sn-p代码。相反,请使用代码示例,就像我在您删除的编辑中使用的那样。以上是关于硬币翻转指令的主要内容,如果未能解决你的问题,请参考以下文章