Javascript Discord.js:如何确保bot不会';Don’不要从列表中选择两个相同的单词
所以我在discord.js中做了一个猜谜游戏,机器人从列表中随机抽取4个单词,放在聊天中,你必须用相同的单词回复。以下是我尝试做的一个简化版本:Javascript Discord.js:如何确保bot不会';Don’不要从列表中选择两个相同的单词,javascript,discord.js,Javascript,Discord.js,所以我在discord.js中做了一个猜谜游戏,机器人从列表中随机抽取4个单词,放在聊天中,你必须用相同的单词回复。以下是我尝试做的一个简化版本: const profileModel = require("../models/profileSchema"); module.exports = { name: "guess", description: "guessing game", async execute
const profileModel = require("../models/profileSchema");
module.exports = {
name: "guess",
description: "guessing game",
async execute(client, message, args, Discord, profileData) {
let words = [
"red",
"orange",
"yellow",
"green",
"blue",
"purple",
"pink",
"black",
"white"
]
let firstWord = words[Math.floor(Math.random() * words.length)];
let secondWord = words[Math.floor(Math.random() * words.length)];
let thirdWord = words[Math.floor(Math.random() * words.length)];
let fourthWord = words[Math.floor(Math.random() * words.length)];
message.reply(`Type the following words into chat: \`${firstWord}\` \`${secondWord}\` \`${thirdWord}\` \`${fourthWord}\``)
.then((msg) => {
setTimeout(function() {
msg.edit('Type the words into chat!');
}, 5000)});
message.channel.awaitMessages(m => m.author.id == message.author.id, { max: 1, time: 10000 }).then(collected => {
if (collected.first().content.toLowerCase() == `${firstWord} ${secondWord} ${thirdWord} ${fourthWord}`) {
message.reply('Correct!');
} else
message.reply('Incorrect');
}).catch(() => {
message.reply('No answer after 10 seconds, time out.');
});
});
}
}
我如何使机器人不会重复选择同一个单词?例如,让它不能说“蓝绿橙”之类的话。谢谢 通过一种非常简单的方式,您可以执行以下操作:
splice()
函数将元素从数组中剪断:index=words.indexOf(第一个单词);
单词.拼接(索引,1);
let firstWord=words[Math.floor(Math.random()*words.length)];
索引=单词。indexOf(第一个单词);
单词.拼接(索引,1);
让secondWord=words[Math.floor(Math.random()*words.length)];
索引=单词。indexOf(第二个单词);
单词.拼接(索引,1);
设thirdWord=words[Math.floor(Math.random()*words.length)];
索引=words.indexOf(第三个单词);
单词.拼接(索引,1);
设fourthWord=words[Math.floor(Math.random()*words.length)];
索引=words.indexOf(四字);
单词.拼接(索引,1);
最后,bot将从words[]
数组中删除该元素,直到调用该命令为止
参考资料:
- 指定单词后,使用
函数将元素从数组中剪断:splice()
- 通过一种非常简单的方式,您可以执行以下操作:
index=words.indexOf(第一个单词);
单词.拼接(索引,1);
let firstWord=words[Math.floor(Math.random()*words.length)];
索引=单词。indexOf(第一个单词);
单词.拼接(索引,1);
让secondWord=words[Math.floor(Math.random()*words.length)];
索引=单词。indexOf(第二个单词);
单词.拼接(索引,1);
设thirdWord=words[Math.floor(Math.random()*words.length)];
索引=words.indexOf(第三个单词);
单词.拼接(索引,1);
设fourthWord=words[Math.floor(Math.random()*words.length)];
索引=words.indexOf(四字);
单词.拼接(索引,1);
最后,bot将从words[]
数组中删除该元素,直到调用该命令为止
参考资料: