Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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;
 }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
        public CardCollectionOperationResult RemoveCard(Hand hand, Card card)
        {
            hand.Remove(card);

            return new CardCollectionOperationResult(hand, card);
        }
Exemplo n.º 7
0
        public CardCollectionOperationResult AddCard(Hand hand, Card card)
        {
            hand.Add(card);

            return new CardCollectionOperationResult(hand);
        }