无限制地随机化数组,然后在Javascript中将其平均分割 var玩家=[]; var TotalPlayer=0 var team1=[]; var team2=[]; var命令={ “团队。加入”:{ 姓名:“加入随机团队。”, 描述:“任何加入的人都将加入一个团队”, 进程:函数(bot、msg、后缀){ players.push(msg.sender); 发送消息(msg.channel,players); bot.sendMessage(msg.channel,msg.sender+“已添加到随机团队选择中。”); 总玩家数+=1; bot.sendMessage(msg.channel,totalplayers) }, }, “团队随机”:{ 名称:“随机团队选择。”, 描述:“显示随机团队中随机团队选择的所有玩家。”, 进程:函数(bot、msg、后缀){ var playcount=0; bot.sendMessage(msg.channel,“tp:+totalplayers);//检查 bot.sendMessage(msg.channel,“i:+playcount);//检查 对于(playcount=0;playcount
无限制地随机化数组,然后在Javascript中将其平均分割 var玩家=[]; var TotalPlayer=0 var team1=[]; var team2=[]; var命令={ “团队。加入”:{ 姓名:“加入随机团队。”, 描述:“任何加入的人都将加入一个团队”, 进程:函数(bot、msg、后缀){ players.push(msg.sender); 发送消息(msg.channel,players); bot.sendMessage(msg.channel,msg.sender+“已添加到随机团队选择中。”); 总玩家数+=1; bot.sendMessage(msg.channel,totalplayers) }, }, “团队随机”:{ 名称:“随机团队选择。”, 描述:“显示随机团队中随机团队选择的所有玩家。”, 进程:函数(bot、msg、后缀){ var playcount=0; bot.sendMessage(msg.channel,“tp:+totalplayers);//检查 bot.sendMessage(msg.channel,“i:+playcount);//检查 对于(playcount=0;playcount,javascript,Javascript,teams.join效果很好,但我加入其中是为了展示teamsteams的整个部分。random应该使用玩家数组,将玩家(用户)在数组中的位置随机化,然后将其分发,以便玩家[0]在第1队,玩家[1]在第2队(等等)直到没有更多的用户。本质上,这是一个列表,并将其随机分为两组。我在测试时意识到的主要问题是,playcount不会增加(我已经尝试了,while和Do,直到循环无效。这是不正确的: var players = []; var totalplayers = 0 var team1 = [
teams.join
效果很好,但我加入其中是为了展示teams
teams的整个部分。random应该使用玩家
数组,将玩家(用户)在数组中的位置随机化,然后将其分发,以便玩家[0]
在第1队,玩家[1]
在第2队(等等)直到没有更多的用户。本质上,这是一个列表,并将其随机分为两组。我在测试时意识到的主要问题是,playcount
不会增加(我已经尝试了,while和Do,直到循环无效。这是不正确的:
var players = [];
var totalplayers = 0
var team1 = [];
var team2 = [];
var commands = {
"teams.join": {
name: "Join random team.",
description: "Anybody who joins will be put to a team",
process: function(bot, msg, suffix) {
players.push(msg.sender);
bot.sendMessage(msg.channel, players);
bot.sendMessage(msg.channel, msg.sender + " has been added to the random team selection.");
totalplayers += 1;
bot.sendMessage(msg.channel, totalplayers)
},
},
"teams.random": {
name: "Random team selection.",
desciption: "Displays all players in random team selection in a random team.",
process: function(bot, msg, suffix) {
var playcount = 0;
bot.sendMessage(msg.channel, "tp: " + totalplayers); // Check
bot.sendMessage(msg.channel, "i: " + playcount); // Check
for (playcount = 0; playcount < totalplayers; playcount++) {
//bot.sendMessage(msg.channel, "Looping?") // Check
var Rteam = players[Math.floor(Math.random() * players.length)];
//bot.sendMessage(msg.channel, Rteam); // Check
if (playcount = 0 || 2 || 4 || 6 || 8) {
team1.push(Rteam);
bot.sendMessage(msg.channel, "isEven = true"); // Check
playcount + 1;
} else if (playcount = 1 || 3 || 5 || 7 || 9) {
team2.push(Rteam);
bot.sendMessage(msg.channel, "isEven = false"); // Check
playcount + 1;
}
playcount + 1;
var roll = players.splice(Rteam, 1);
var yourNumber = roll[totalplayers];
//i += 1;
}
bot.sendMessage(msg.channel, "Team 1: " + team1);
bot.sendMessage(msg.channel, "Team 2: " + team2);
},
}
有两个问题:首先,您使用=
,这是赋值,当它应该是=
进行比较时。其次,您不能使用|
这种方式来比较多个元素,您需要分别对每个项目进行比较。因此,它应该是:
if (playcount = 0 || 2 || 4 || 6 || 8) {
但如果您想知道playcount
是否为偶数,您可以执行以下操作:
if (playcount == 0 || playcount == 2 || playcount == 4 || playcount == 6 || playcount == 8) {
您不需要使用else,如果
用于其他测试,只需使用else
,因为只有两种可能性
包含以下内容的行:
if (playcount % 2 == 0)
什么都不要做。你根本不需要这个,因为你在for()
标题中增加playcount
顺便说一句,你的代码中没有任何东西可以阻止你多次选择同一名球员,并将他们添加到不同的球队。我同意巴尔马关于OP原始代码的评论。 但为了完整性起见,这里有一个示例代码,用于将团队一分为二,并在每个团队中随机放置玩家
playcount + 1;
输出:
var players = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
team1 = [],
team2 = [],
i;
while (players.length > 0) {
i = Math.floor(Math.random() * players.length);
if (players.length % 2 === 0) {
team1.push(players[i]);
} else {
team2.push(players[i]);
}
players.splice(i, 1);
}
console.log(team1, team2);
在浏览器控制台中运行代码几次,您将在每个数组中获得不同的随机数。如果您只发布与您的问题相关的代码,那就太好了。如果您想知道如何拆分数组,请发布代码,表明您正试图这样做。我们可以更轻松地提供帮助。
playcount+1
没有任何作用。它可以计算延迟总和,但不放在任何地方。var roll=players.splice(Rteam,1)
的目的是什么?
[10, 4, 1, 6, 5] [3, 8, 2, 9, 7]