1.库
Suit
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace CardLib 7 { 8 public enum Rank 9 { 10 11 Ace = 1, 12 Deuce, 13 Three, 14 Four, 15 Five, 16 Six, 17 Seven, 18 Eight, 19 Nine, 20 Ten, 21 Jack, 22 Queen, 23 King 24 } 25 }
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace CardLib 7 { 8 public class Card 9 { 10 private readonly Rank rank; 11 private readonly Suit suit; 12 13 14 private Card() 15 { 16 17 } 18 public Card(Suit newSuit, Rank newRank) 19 { 20 suit = newSuit; 21 rank = newRank; 22 } 23 24 public override string ToString() 25 { 26 return "The " + rank + " of " + suit + "s\n"; 27 } 28 } 29 }
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace CardLib 8 9 { 10 public class Deck 11 { 12 private Card[] cards; 13 14 public Deck() 15 { 16 cards = new Card[52]; 17 for(int suitVal=0;suitVal<4;suitVal++) 18 { 19 for(int rankVal=1;rankVal<14;rankVal++) 20 { 21 cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)rankVal); 22 } 23 } 24 } 25 26 public Card GetCard(int cardNum) 27 { 28 if (cardNum >= 0 && cardNum <= 51) 29 return cards[cardNum]; 30 else 31 throw (new System.ArgumentOutOfRangeException("cardNum", cardNum, "Value must be between 0 and 51.")); 32 } 33 34 public void Shuffle() 35 { 36 Card[] newDeck = new Card[52]; 37 bool[] assigned = new bool[52]; 38 Random sourceGen = new Random(); 39 for (int i = 0 ;i < 52;i++) 40 { 41 int destCard = 0; 42 bool foundCard = false; 43 while(foundCard==false) 44 { 45 destCard = sourceGen.Next(52); 46 if (assigned[destCard] == false) 47 foundCard = true; 48 } 49 assigned[destCard] = true; 50 newDeck[destCard] = cards[i]; 51 } 52 53 newDeck.CopyTo(cards, 0); 54 } 55 } 56 }
2.输出卡牌
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using CardLib; 7 8 namespace CardClient 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 Deck myDeck = new Deck(); 15 myDeck.Shuffle(); 16 for(int i=0;i<52;++i) 17 { 18 Card tempCard = myDeck.GetCard(i); 19 Console.Write(tempCard.ToString()); 20 //if (i != 51) 21 // Console.Write(","); 22 //else 23 // Console.WriteLine(); 24 } 25 Console.ReadKey(); 26 27 28 29 } 30 } 31 }