摘要:撲克牌
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#入門經典 第十章