using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<int> arrbase=new List<int>(54);
List<int> arrresult = new List<int>(54);
//1初始化牌
for (int i = 0; i < 54; i++)
{
arrbase.Add(i + 1);
arrresult.Add(0);
Console.WriteLine("将"+(i+1)+"放在"+i+"位置");
}
Console.WriteLine("初始化完毕");
//2.随机抽一张牌,放入B数据
Random r=new Random();
var count = arrbase.Count;
for (int i = 0; i < 54; i++)
{
var index = r.Next(0, count);//随机确定想要抽牌的位置
var tem = arrbase[index];//取出该位置上面的牌
arrresult[i] = tem;//将该牌放置在牌堆B中.从前向后依次放置
Console.WriteLine("将{0}放在了牌组B的{1}位置", tem, i);
if (index != count-1) //从牌堆A随机取的不是牌堆A的最后一张
{
//将最后一个牌给 index位置
arrbase[index] = arrbase[count - 1];
}
//移除牌堆A的最后一个元素 因为这里还要用 所以直接就用count-1代替了
count = count - 1;
}
if (arrresult.Distinct().Count()==54)//数据去重之后还是和以前大小一样,说明所有牌都移过来了
{
Console.WriteLine("清洗之后的牌局:");
foreach (var i in arrresult)
{
Console.WriteLine(i);
}
}
else
{
Console.WriteLine("出错了!");
}
Console.ReadKey();
}
}
}