/// <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; }
/// <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); }
public void RemoveCard(DateTime date) { CardObject CO = Card; Employer.RemoveCard(Card, date); RemovedCards.Add(CO); //Card.RemoveCard(date); SaveEmployers(); SaveCardArchive(); }