Example #1
0
        public void Shuffle()
        {
            //Card[] newDeck = new Card[52];
            CardsCollection newDeck = new CardsCollection();

            bool[] assigned  = new bool[52];
            Random sourceGen = new Random();

            for (int i = 0; i < 52; i++)
            {
                //int destCard = 0;
                int  sourceCard = 0;
                bool foundCard  = false;
                while (foundCard == false)
                {
                    sourceCard = sourceGen.Next(52);//Next(x)----生成一个介于0~x之间的随机数。
                    if (assigned[sourceCard] == false)
                    {
                        foundCard = true;
                    }
                }
                assigned[sourceCard] = true;
                //newDeck[destCard] = cards[i];
                newDeck.Add(cards[sourceCard]);
            }
            newDeck.CopyTo(cards);
        }
Example #2
0
        public object Clone()
        {
            CardsCollection newCards = new CardsCollection();

            foreach (Card sourceCard in this)
            {
                newCards.Add((Card)sourceCard.Clone());
            }
            return(newCards);
        }
Example #3
0
 public Deck()
 {
     /*cards = new Card[52];
      * for (int suitVal = 0; suitVal < 4; suitVal++)
      * {
      *  for (int rankVal = 1; rankVal < 14; rankVal++)
      *  {
      *      cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)rankVal);
      *  }
      * }*/
     for (int suitVal = 0; suitVal < 4; suitVal++)
     {
         for (int rankVal = 1; rankVal < 14; rankVal++)
         {
             cards.Add(new CardLib_36.Card((Suit)suitVal, (Rank)rankVal));
         }
     }
 }