撲克牌

  • 2970
  • 0

摘要:撲克牌

 

enum Rank
{
    Ace=1,Deuce,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Jack,Queen,King
}
 
enum Suit
{
    Club,Diamond,Heart,Spade
}
 
class Card
    {
        public readonly Suit suit;
        public readonly Rank rank;
        public Card(Suit newSuit, Rank newRank)
        {
            suit = newSuit;
            rank = newRank;
        }
        public override string ToString()
        {
            return "The " + rank + " of " + suit + "s";
        }
    }
 
    class Deck
    {
        private Card[] cards;
        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);
                }
            }
        }
        public Card GetCard(int cardNum)
        {
            if (cardNum >= 0 && cardNum <= 51)
                return cards[cardNum];
            else
                throw(new System.ArgumentOutOfRangeException("cardNum",cardNum,"Value must be between 0 and 51."));
        }
        public void Shuffle()//洗牌
        {
            Random r = new Random();
            Card card;
            int j;
            for (int i = 0; i < 52; i++)
            {
                j = r.Next(52);
                card = cards[i];
                cards[i] = cards[j];
                cards[j] = card;
            }            
        }
    }
 
 
 
 
ref:
C#入門經典 第十章