Exemple #1
0
 public void Shuffle()
 {
     //Card[] newDeck = new Card[52];
     Cards newDeck = new Cards();
     bool[] assigned = new bool[52];
     Random sourceGen = new Random();
     for (int i = 0; i < 52;i++ )
     {
         //int destCard = 0;
         int sourceCard = 0;
         bool foundCard = false;
         while(foundCard==false)
         {
             sourceCard = sourceGen.Next(52);
             //destCard = sourceGen.Next(52);
             //if (assigned[destCard] == false)
                 if(assigned[sourceCard]==false)
                 foundCard = true;
         }
         //assigned[destCard] = true;
         assigned[sourceCard] = true;
         //newDeck[destCard] = cards[i];
         newDeck.Add(cards[sourceCard]);
     }
     //newDeck.CopyTo(cards,0);
     newDeck.CopyTo(cards);
 }
Exemple #2
0
 public object Clone()
 {
     Cards newCards = new Cards();
     foreach (Card sourceCard in List)
     {
         newCards.Add(sourceCard.Clone() as Card);
     }
     return newCards;
 }
        public Deck()
        {
            //cards = new Card [52];
            //int index = 0;

            for (int suitVal = 0; suitVal < 4; suitVal++)
            {
                for (int rankVal = 1; rankVal < 14; rankVal++)
                {
                    CurrentDeck.Add(new Card((Suit)suitVal, (Rank)rankVal));
                    //cards[index] = new Card((Suit)suitVal, (Rank)rankVal);
                    //index++;
                }
            }
        }
Exemple #4
0
 static void Main(string[] args)
 {
     Deck deck1 = new Deck(); 
     Cards x = new Cards();
     x.Add(new Card((Suit)1,(Rank)1));
     Console.WriteLine(x.Count);
     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 cloned 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 cloned deck is: {0}", deck2.GetCard(0)); 
     Console.ReadKey(); 
     Console.WriteLine("Part 2");
     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}", card4.ToString(), card1.ToString (), card4 > card1); 
     Console.WriteLine("{0} > {1} ? {2}", card5.ToString (), card4.ToString (), card5 > card4); 
     Console.WriteLine("{0} > {1} ? {2}", card4.ToString (), card5.ToString (), card4 > card5); 
     Console.ReadKey(); 
 }
Exemple #5
0
 public void Shuffle()
 {
     Cards newDeck = new Cards();
     bool[] assigned = new bool[52];
     Random sourceGen = new Random();
     for (int i = 0; i < 52; i++)
     {
         int sourceCard = 0;
         bool foundCard = false;
         while (foundCard == false)
         {
             sourceCard = sourceGen.Next(52);
             if (assigned[sourceCard] == false)
                 foundCard = true;
         }
         assigned[sourceCard] = true;
         newDeck.Add(cards[sourceCard]);
     }
     newDeck.CopyTo(cards);
 }
Exemple #6
0
        public Deck()
        {
            //// Book solution
            //for (int suitVal = 0; suitVal < 4; suitVal++)
            //{
            //    for (int rankVal = 1; rankVal < 14; rankVal++)
            //    {
            //        cards.Add(new Card((Suit)suitVal, (Rank)rankVal));
            //    }
            //}

            // Loop through all the Suit and Rank enum values
            foreach (Suit suit in Enum.GetValues(typeof(Suit)))
            {
                foreach (Rank rank in Enum.GetValues(typeof(Rank)))
                {
                    cards.Add(new Card(suit, rank));
                }
            }
        }
Exemple #7
0
        /// <summary>
        /// Shuffles all the cards in this deck.
        /// </summary>
        public void Shuffle()
        {
            // Create a temporary collection to shuffle the cards into.
            Cards newDeck = new Cards();

            // Create an array to track which elements of the temporary array already have
            // a card assigned to them.
            bool[] assigned = new bool[52];

            // Use a Random class to select the positions to shuffle the cards into.
            Random sourceGen = new Random();

            // Shuffle each card in the cards field into the temporary collection.
            for (int i = 0; i < 52; i++)
            {
                int  sourceCard = 0;
                bool foundCard  = false;
                while (foundCard == false)
                {
                    // Generate random numbers from 0 - 51 until we find a position in the
                    // temporary array that doesn't have a card assigned to it.
                    sourceCard = sourceGen.Next(52);
                    if (assigned[sourceCard] == false)
                    {
                        foundCard = true;
                    }
                }

                //Set the flag that an empty position was found, and assign the current card
                // to it.
                assigned[sourceCard] = true;
                newDeck.Add(cards[sourceCard]);
            }

            // Copy the shuffled deck back into the same instance of the cards field.
            // Note that cards = newDeck would create a new instance in cards, which could
            // cause problems if some other code was holding a reference to the original
            // instance of cards.
            newDeck.CopyTo(cards);
        }
Exemple #8
0
        public void Shuffle()
        {
            Cards newDeck = new Cards();

            bool[] assigned  = new bool[52];
            Random sourceGen = new Random();

            for (int i = 0; i < 52; i++)
            {
                int  sourceCard = 0;
                bool foundCard  = false;
                while (foundCard == false)
                {
                    sourceCard = sourceGen.Next(52);
                    if (assigned[sourceCard] == false)
                    {
                        foundCard = true;
                    }
                }
                assigned[sourceCard] = true;
                newDeck.Add(cards[sourceCard]);
            }
            newDeck.CopyTo(cards);
        }
        public void Shuffle()
        {
            Cards newDeck = new Cards();
            //bool[] assigned = new bool[52];
            Random sourceGen = new Random();

            //for (int i = 0; i < 52; i++)
            //{
            //    int destCard = 0;
            //    bool foundCard = false;

            //    while (foundCard == false)
            //    {
            //        destCard = sourceGen.Next(52);

            //        Debug.WriteLine(destCard);
            //        Debug.WriteLine(assigned[destCard]);

            //        if (assigned[destCard] == false)
            //        {
            //            foundCard = true;
            //        }
            //    }
            //    assigned[destCard] = true;
            //    newDeck[destCard] = cards[i];
            //}

            //for (int i = 0; i < 52; i++)
            //{
            int destCard = sourceGen.Next(52);
            int i        = 0;

            //newDeck[destCard] = cards[i];
            //destCard = sourceGen.Next(52);


            while (i < 52)

            {
                destCard = sourceGen.Next(52);


                if (!newDeck.Contains(GetCard(destCard)))
                {
                    newDeck.Add(cards[destCard]);
                    i++;
                }
                else
                {
                    destCard = sourceGen.Next(52);

                    if (!newDeck.Contains(GetCard(destCard)))
                    {
                        newDeck.Add(cards[destCard]);
                        i++;
                    }
                }
            }

            //}


            newDeck.CopyTo(cards);
        }