/// <summary> /// Places a card randomly inside the deck /// </summary> /// <param name="deck"></param> /// <param name="card"></param> /// <returns></returns> public CardCollectionOperationResult PlaceRandom(Deck deck, Card card) { CheckDeckIntegrity(deck); Random random = new Random(); return PlaceCardAtIndex(deck, card, random.Next(0, deck.Count)); }
/// <summary> /// Places a card on the bottom of the deck /// </summary> /// <param name="deck"></param> /// <param name="card"></param> /// <returns></returns> public CardCollectionOperationResult PlaceBottom(Deck deck, Card card) { CheckDeckIntegrity(deck); deck.Add(card); return new CardCollectionOperationResult(deck); }
public CardCollectionOperationResult(CardCollection collection, Card card) { _collection = collection; _card = card; }
/// <summary> /// Places a card on top of the deck /// </summary> /// <param name="deck"></param> /// <param name="card"></param> /// <returns></returns> public CardCollectionOperationResult PlaceTop(Deck deck, Card card) { CheckDeckIntegrity(deck); return PlaceCardAtIndex(deck, card, 0); }
/// <summary> /// Places a card at a specified index of the deck /// </summary> /// <param name="deck"></param> /// <param name="card"></param> /// <param name="index"></param> /// <returns></returns> private CardCollectionOperationResult PlaceCardAtIndex(Deck deck, Card card, int index) { deck.Insert(index, card); return new CardCollectionOperationResult(deck); }
public CardCollectionOperationResult RemoveCard(Hand hand, Card card) { hand.Remove(card); return new CardCollectionOperationResult(hand, card); }
public CardCollectionOperationResult AddCard(Hand hand, Card card) { hand.Add(card); return new CardCollectionOperationResult(hand); }