示例#1
0
        /// <summary>
        /// Shuffles this deck.
        /// </summary>
        public void Shuffle()
        {
            //First, replace the cards in removedCards back into cards
            foreach (ICard x in RemovedCards)
            {
                Cards.Add(x);
            }
            RemovedCards.Clear();

            ObservableCollection <ICard> shuffled = new ObservableCollection <ICard>();
            int n = 0;

            bool[] hasBeenShuffledBackIn = new bool[Cards.Count];

            for (int i = 0; i < hasBeenShuffledBackIn.Length; i++)
            {
                hasBeenShuffledBackIn[i] = false;
            }

            while (n < this.Cards.Count)
            {
                int k = rand.Next(Cards.Count);
                if (!hasBeenShuffledBackIn[k])
                {
                    hasBeenShuffledBackIn[k] = true;
                    shuffled.Add(Cards.ElementAt(k));
                    n++;
                }
            }

            Cards = shuffled;
        }
示例#2
0
        /// <summary>
        /// Draws next card while also removing it from this deck.
        /// </summary>
        /// <returns>ICard</returns>
        public ICard DrawNextCard()
        {
            ICard returned = Cards.First();

            RemovedCards.Add(returned);
            Cards.RemoveAt(0);
            return(returned);
        }
示例#3
0
        public void RemoveCard(DateTime date)
        {
            CardObject CO = Card;

            Employer.RemoveCard(Card, date);
            RemovedCards.Add(CO);
            //Card.RemoveCard(date);
            SaveEmployers();
            SaveCardArchive();
        }