Пример #1
0
 private void Reshuffle(Deck currentDeck)
 {
     Console.WriteLine("Discarded cards reshuffled into deck.");
     currentDeck.Shuffle();
     discardedCards.Clear();
     currentCard = 0;
 }
Пример #2
0
 public Game()
 {
     currentCard = 0;
     playDeck = new Deck(true);
     playDeck.LastCardDrawn += new Deck.LastCardDrawnHandler(Reshuffle);
     playDeck.Shuffle();
     discardedCards = new Cards();
 }
Пример #3
0
        /// <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
        }
Пример #4
0
 public void PerformDraw(Deck deck, Card availableCard)
 {
     switch (Skill)
       {
     case ComputerSkillLevel.Dumb:
       DrawCard(deck);
       break;
     default:
       DrawBestCard(deck, availableCard, (Skill == ComputerSkillLevel.Cheats));
       break;
       }
 }
Пример #5
0
 public void PerformDiscard(Deck deck)
 {
     switch (Skill)
       {
     case ComputerSkillLevel.Dumb:
       int discardIndex = _random.Next(Hand.Count);
       DiscardCard(Hand[discardIndex]);
       break;
     default:
       DiscardWorstCard();
       break;
       }
 }
Пример #6
0
        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();
        }
Пример #7
0
 public void DrawNewHand(Deck deck)
 {
     Hand = new Cards();
       for (int i = 0; i < 7; i++)
     Hand.Add(deck.Draw());
 }
Пример #8
0
 public void DrawCard(Deck deck)
 {
     AddCard(deck.Draw());
 }
Пример #9
0
 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();
 }
Пример #10
0
 public object Clone()
 {
     Deck newDeck = new Deck(cards.Clone() as Cards);
       return newDeck;
 }
Пример #11
0
 private void CreateGameDeck()
 {
     GameDeck = new CardLib.Deck();
     GameDeck.Shuffle();
 }
Пример #12
0
 private void CreateGameDeck()
 {
     GameDeck = new CardLib.Deck();
       GameDeck.Shuffle();
 }
Пример #13
0
 public object Clone()
 {
     Deck clone = new Deck();
     clone.deck = (Cards)this.deck.Clone();
     return clone;
 }
Пример #14
0
 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));
 }
Пример #15
0
 public CardGame(ITerminal terminal)
 {
     _deck = new Deck(this);
     _terminal = terminal;
 }
Пример #16
0
        public object Clone()
        {
            Deck clonedDeck = new Deck((Cards)cards.Clone());

            return(clonedDeck);
        }