C#扑克洗牌,52个不同数字,随机放到4个13个数的数组里去-(分享)
static void Main(string[] args)
{
List<int> pokerlist = new List<int>();
int index = 0;
int rdindex = 0;
for (int t = 1,s=0; t <= 52; t++,s++)
{
pokerlist.Add(t);
}
foreach (int i in pokerlist)
{
Console.WriteLine(" i= " + i);
}
for(int j=0; j< pokerlist.Count; j++)
{
Console.WriteLine(" j= " + j);
Console.WriteLine("pokerlist[" + j.ToString() + "]=; " + pokerlist[j].ToString());
}
Console.WriteLine("pokerlist length: " + pokerlist.Count);
Console.WriteLine("-----------------------Starting to shuffle-------------------------");
int[] out1 = new int[13];
int[] out2 = new int[13];
int[] out3 = new int[13];
int[] out4 = new int[13];
Random rd = new Random(pokerlist.Count);
while (pokerlist.Count > 0)
{
if (pokerlist.Count <= 52 && pokerlist.Count > 39)
{
rdindex = rd.Next(pokerlist.Count);
out1[index] = pokerlist[rdindex];
pokerlist.RemoveAt(rdindex);
index++;
if (index == 13)
{
index = 0;
}
}
if (pokerlist.Count <= 39 && pokerlist.Count > 26)
{
rdindex = rd.Next(pokerlist.Count);
out2[index] = pokerlist[rdindex];
pokerlist.RemoveAt(rdindex);
index++;
if (index == 13)
{
index = 0;
}
}
if (pokerlist.Count <= 26 && pokerlist.Count > 13)
{
rdindex = rd.Next(pokerlist.Count);
out3[index] = pokerlist[rdindex];
pokerlist.RemoveAt(rdindex);
index++;
if (index == 13)
{
index = 0;
}
}
if (pokerlist.Count <= 13 && pokerlist.Count > 0)
{
rdindex = rd.Next(pokerlist.Count);
out4[index] = pokerlist[rdindex];
pokerlist.RemoveAt(rdindex);
index++;
if (index == 13)
{
index = 0;
}
}
}
foreach (int k in out1)
{
Console.WriteLine("out1 :" + k.ToString());
}
foreach (int k in out2)
{
Console.WriteLine("out2 :" + k.ToString());
}
foreach (int k in out3)
{
Console.WriteLine("out3 :" + k.ToString());
}
foreach (int k in out4)
{
Console.WriteLine("out4 :" + k.ToString());
}
Console.WriteLine("-----------------------Finish shuffling----------------------------");
Console.ReadLine();
}