private void Reshuffle(Deck currentDeck) { Console.WriteLine("Discarded cards reshuffled into deck."); currentDeck.Shuffle(); discardedCards.Clear(); currentCard = 0; }
public Game() { currentCard = 0; playDeck = new Deck(true); playDeck.LastCardDrawn += new Deck.LastCardDrawnHandler(Reshuffle); playDeck.Shuffle(); discardedCards = new Cards(); }
/// <summary> /// 此程序演示了集合索引,运算符重载等内容 /// </summary> /// <param name="args"></param> static void Main(string[] args) { #region 向CardLib添加一个Cards集合 Deck myDeck = new Deck(); myDeck.Shuffle(); for (int i = 0; i < 52; i++) { Card tempCard = myDeck.GetCard(i); Console.Write(tempCard.ToString()); if (i != 51) Console.Write(", "); else Console.WriteLine(); } Console.ReadKey(); #endregion #region 向CardLib添加深复制集合 Deck deck1 = new Deck(); Deck deck2 = (Deck)deck1.Clone(); Console.WriteLine("The first card in the original deck is: {0}", deck1.GetCard(0)); Console.WriteLine("The first card in the clone deck is: {0}", deck2.GetCard(0)); deck1.Shuffle(); Console.WriteLine("Original deck shuffled."); Console.WriteLine("The first card in the original deck is: {0}", deck1.GetCard(0)); Console.WriteLine("The first card in the clone deck is: {0}", deck2.GetCard(0)); Console.ReadKey(); #endregion #region 向CardLib添加运算符重载 Card.isAceHigh = true; Console.WriteLine("Aces are high."); Card.useTrumps = true; Card.trump = Suit.Club; Console.WriteLine("Clubs are trumps."); Card card1, card2, card3, card4, card5; card1 = new Card(Suit.Club, Rank.Five); card2 = new Card(Suit.Club, Rank.Five); card3 = new Card(Suit.Club, Rank.Ace); card4 = new Card(Suit.Heart, Rank.Ten); card5 = new Card(Suit.Diamond, Rank.Ace); Console.WriteLine("{0} == {1} ? {2}", card1.ToString(), card2.ToString(), card1 == card2); Console.WriteLine("{0} != {1} ? {2}", card1.ToString(), card3.ToString(), card1 != card3); Console.WriteLine("{0}.Equals({1}) ? {2}", card1.ToString(), card4.ToString(), card1.Equals(card4)); Console.WriteLine("Card.Equals({0}, {1}) ? {2}", card3.ToString(), card4.ToString(), Card.Equals(card3, card4)); Console.WriteLine("{0} > {1} ? {2}", card1.ToString(), card2.ToString(), card1 > card2); Console.WriteLine("{0} <= {1} ? {2}", card1.ToString(), card3.ToString(), card1 <= card3); Console.WriteLine("{0} > {1} ? {2}", card1.ToString(), card4.ToString(), card1 > card4); Console.WriteLine("{0} < {1} ? {2}", card1.ToString(), card4.ToString(), card1 < card4); Console.WriteLine("{0} > {1} ? {2}", card5.ToString(), card4.ToString(), card1 > card4); Console.WriteLine("{0} > {1} ? {2}", card4.ToString(), card5.ToString(), card1 > card4); Console.ReadKey(); #endregion }
public void PerformDraw(Deck deck, Card availableCard) { switch (Skill) { case ComputerSkillLevel.Dumb: DrawCard(deck); break; default: DrawBestCard(deck, availableCard, (Skill == ComputerSkillLevel.Cheats)); break; } }
public void PerformDiscard(Deck deck) { switch (Skill) { case ComputerSkillLevel.Dumb: int discardIndex = _random.Next(Hand.Count); DiscardCard(Hand[discardIndex]); break; default: DiscardWorstCard(); break; } }
static void Main(string[] args) { Deck myDeck = new Deck(); myDeck.Shuffle(); for(int i = 0; i < 52; i++) { Card tempCard = myDeck.GetCard(i); Console.Write(tempCard.ToString()); if (i != 51) Console.Write(", "); else Console.WriteLine(); } Console.ReadKey(); }
public void DrawNewHand(Deck deck) { Hand = new Cards(); for (int i = 0; i < 7; i++) Hand.Add(deck.Draw()); }
public void DrawCard(Deck deck) { AddCard(deck.Draw()); }
public void DrawNewHand(Deck deck) { Hand = new Cards(); Chosen = new Cards(); for (int i = 0; i < 17; i++) Hand.Add(deck.Draw()); if (Landlord) { for (int i = 0; i < 3; i++) Hand.Add(deck.Draw()); } Hand.Sort(); }
public object Clone() { Deck newDeck = new Deck(cards.Clone() as Cards); return newDeck; }
private void CreateGameDeck() { GameDeck = new CardLib.Deck(); GameDeck.Shuffle(); }
public object Clone() { Deck clone = new Deck(); clone.deck = (Cards)this.deck.Clone(); return clone; }
private void DrawBestCard(Deck deck, Card availableCard, bool cheat = false) { var bestSuit = CalculateBestSuit(); if (availableCard.suit == bestSuit) AddCard(availableCard); else if (cheat == false) DrawCard(deck); else AddCard(deck.SelectCardOfSpecificSuit(bestSuit)); }
public CardGame(ITerminal terminal) { _deck = new Deck(this); _terminal = terminal; }
public object Clone() { Deck clonedDeck = new Deck((Cards)cards.Clone()); return(clonedDeck); }