最简单的做法是,把52张牌全部放在一个数组里面,
然后循环给另4个数组分别随机抽取该数组的INDEX里的内容
为了使不重复抽取,每抽取一次就做个标签

解决方案 »

  1.   

    namespace ConsoleApplication1
    {
        class Program
        {
             List<Cards> listTotal = new List<Cards>();
                List<Cards> listEast = new List<Cards>();
                List<Cards> listWest = new List<Cards>();
                List<Cards> listSouth = new List<Cards>();
                List<Cards> listNorth = new List<Cards>();
                listTotal  = RandomCard.ReturnCard();
                
                for (int i = 0; i < listTotal.Count; i++)
      {
                    
                        if (i < 4)
                        {
                            switch (i)
                            {
                                case 0:
                                    {
                                        listEast.Add(listTotal[i]);
                                        break;
                                    }
                                case 1:
                                    {
                                        listWest.Add(listTotal[i]);
                                        break;
                                    }
                                case 2:
                                    {
                                        listSouth.Add(listTotal[i]);
                                        break;
                                    }
                                case 3:
                                    {
                                        listNorth.Add(listTotal[i]);
                                        break;
                                    }                        }
                        }
                        else if (i % 4 == 0)
                        {
                            listEast.Add(listTotal[i]);
                        }
                        else if (i % 4 == 1)
                        {
                            listWest.Add(listTotal[i]);
                        }
                        else if (i % 4 == 2)
                        {
                            listSouth.Add(listTotal[i]);
                        }
                        else if (i % 4 == 3)
                        {
                            listNorth.Add(listTotal[i]);
                        }
     
       }
                
                Console.WriteLine("EastCards :");
                foreach (Cards card in listEast)
                {
                    
                    Console.WriteLine(card);
                }
                Console.WriteLine("WestCards :");
                foreach (Cards card in listWest)
                {                Console.WriteLine(card);
                }
                Console.WriteLine("SouthCards :");
                foreach (Cards card in listSouth)
                {                Console.WriteLine(card);
                }
                Console.WriteLine("NorthCards :");
                foreach (Cards card in listNorth)
                {                Console.WriteLine(card);
                }
                Console.ReadLine();
      }
     public class RandomCard
        {
            static Random Rdm = new Random();
            static public List<Cards> ReturnCard()
            {
                List<Cards> list = new List<Cards>();
                int itemp = 0;
                while (list.Count != 52)
                {
                    itemp = Rdm.Next(1,53);
                    if (!list.Contains((Cards)(itemp)))
                    {
                        list.Add((Cards)(itemp));
                    }
                }
                return list;        }
        }
     public enum Cards
        {
            C1 = 1, C2, C3, C4, C5, C6, C7, C8, C9, C10, CJ, CQ, CK, D1, D2, D3, D4, D5,D6, D7, D8, D9, D10, DJ, DQ, DK, H1, H2,H3, H4, H5, H6, H7, H8, H9, H10, HJ, HQ, HK, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, SJ, SQ, SK
        }
      }
    }