班上十个同学LOL内战 因为难以协调谁和谁一组(实力差距不均匀。。。有的砖石有的白银) 就用C#写了个随机分组的小程序
因为就两个人玩AD所以在其中也加入了 两个AD不分到同一组的判断
代码:
using System;
namespace GroupApp
{
class Program
{
class Group
{
public int temp,ff,f,flag=0;
public String[] Name = ("小武,影哥,小乔,胖哥,小马哥,强哥,B哥,黄老板,卢指导,柱哥").Split(',');
// public String[] Name = ("N1,N2,N3,N4,N5,N6,N7,N8,N9,N10").Split(',');
public int[] storage = new int[10];
public void AutoGroup()
{
Random random = new Random();
for(int i=0, j = 0; i<=9;i++/*,j++*/)//随机分组
{
f = random.Next(0, 10);
storage[i] = f;
while (j < i)
{
for(j=0;j<i;j++)
{
if(storage[i]==storage[j])
{
storage[i] = random.Next(0, 10);
break;
}
}
}
}
/*for (int x = 0; x < 10; x++)//测试随机生成的数组
{
Console.Write("{0}\t", storge[x]);
}*/
for (int q = 0; q < 5; q++)//两个AD不在同一边
{
if (storage[q] == 1)
{
flag += 1;
if (flag % 2 == 0)
{
ff = random.Next(6, 10);
//Console.WriteLine("f{0}", ff);//测试判断是否正确执行
temp = storage[q];
storage[q] = storage[ff];
storage[ff] = temp;
flag = 0;
}
}
if (storage[q] == 4)
{
flag += 1;
if (flag % 2 == 0)
{
ff = random.Next(6, 10);
// Console.WriteLine("s{0}", ff);
temp = storage[q];
storage[q] = storage[ff];
storage[ff] = temp;
flag = 0;
}
}
}
flag = 0;//重置flag
for (int w = 5; w < 10; w++)//两个AD不在同一边
{
if (storage[w] == 1)
{
flag += 1;
if (flag % 2 == 0)
{
ff = random.Next(0, 5);
//Console.WriteLine("t{0}", ff);
temp = storage[w];
storage[w] = storage[ff];
storage[ff] = temp;
flag = 0;
}
}
if (storage[w] == 4)
{
flag += 1;
if (flag % 2 == 0)
{
ff = random.Next(0, 5);
// Console.WriteLine("fo{0}", ff);
temp = storage[w];
storage[w] = storage[ff];
storage[ff] = temp;
flag = 0;
}
}
}
}
public void ShowInfo()//输出函数
{
for(int i=0,j=10; i<j;i++)
{
if (i == 0)
{
Console.WriteLine("\n\n第一组:");
}
switch (storage[i])
{
case 0:
Console.Write("{0}\t",Name[0]);
break;
case 1:
Console.Write("{0}\t", Name[1]);
break;
case 2:
Console.Write("{0}\t", Name[2]);
break;
case 3:
Console.Write("{0}\t", Name[3]);
break;
case 4:
Console.Write("{0}\t", Name[4]);
break;
case 5:
Console.Write("{0}\t", Name[5]);
break;
case 6:
Console.Write("{0}\t", Name[6]);
break;
case 7:
Console.Write("{0}\t", Name[7]);
break;
case 8:
Console.Write("{0}\t", Name[8]);
break;
case 9:
Console.Write("{0}\t", Name[9]);
break;
}
if(i==4)
{
Console.WriteLine("\n第二组:");
}
}
}
}
static void Main(string[] args)
{
Group group1 = new Group();
group1.AutoGroup();
group1.ShowInfo();
}
}
}
运行效果:

为解决班级LOL内战中因实力不均而产生的分组难题,一位开发者使用C#编写了一个随机分组小程序,确保两名AD玩家不会被分配到同一队伍,实现了公平竞赛。

5297

被折叠的 条评论
为什么被折叠?



