这是我到目前为止所得到的,但如果某人已经在团队中,则不会考虑到这一点。即。
亚历克斯和约翰将被随机分配到球队中。目前该系统将Alex放入第1组,它不会知道有人在第1组,也可能将John放在第1组。这个逻辑还需要反映出是否有4个团队和16个人需要排序等等。有人可以帮忙吗?List<int> teamsLeft = new List<int>();
foreach (var item in namesOfAllPlayers)
{
if (!teamsLeft.Any())
{
for (int i = 0; i < noOfTeams.Value; i++)
teamsLeft.Add(i + 1);
}
Random rnd = new Random();
int team = rnd.Next(1, Convert.ToInt32(noOfTeams.Value));
在确定球队中的哪个球员后,它会从teamsLeft中提取该球队号码并继续。一旦所有球队被提取出来,意味着每次比以前有更多的球被放置,那么它将刷新球队左侧。
答案 0 :(得分:0)
当我在做我的解决方案时@MarcGravell提出了类似的建议。没关系,我还是会给出我的解决方案。我不是在洗牌,只是随机排队:
此代码:
var players = new List<string> { "Abe", "Brian", "Chloé", "Dan", "Eve", "Finn", "Gina", "Henry",
"Ivan", "Joe", "Kate", "Lou", "Max", "Nina", "Oona", "Paul"};
var randomPlayers = new List<string>();
var random = new Random();
for (int i=0; i<15; i++)
{
int place = random.Next(0, i+1);
randomPlayers.Insert(place, players[i]);
}
制作随机播放器列表。现在你可以把前四个队伍拿到队伍1,将接下来的四个队伍拿到队伍2,依此类推,或者你可以做旧的事情,你可以排队,并给他们编号1,2,3,4,1,2。 ..