/// <inheritdoc />
        public override bool Execute(FiftyTwoCardGamePlayer player,
                                     ICardTray <FiftyTwoCardGamePlayer, FiftyTwoCardGameDeck, FiftyTwoCardGameCard> cardTray)
        {
            var card = player.Deck.Draw();

            if (card == null) // deck is empty the player has lost
            {
                return(false);
            }
            cardTray.Place <WarCardTraySlot>(player, card);

            return(true);
        }
        /// <inheritdoc />
        public override bool Execute(FiftyTwoCardGamePlayer player,
                                     ICardTray <FiftyTwoCardGamePlayer, FiftyTwoCardGameDeck, FiftyTwoCardGameCard> cardTray)
        {
            var isVisible = false;

            foreach (var fiftyTwoCardGameCard in player.Deck.Draw(2)
                     )                            // the player must put his card on the tray if he has one
            {
                if (fiftyTwoCardGameCard == null) // deck is empty the player has lost
                {
                    return(false);
                }
                if (!isVisible) // set the first card as invisible
                {
                    fiftyTwoCardGameCard.IsVisible = false;
                    isVisible = true;
                }

                cardTray.Place <WarCardTraySlot>(player, fiftyTwoCardGameCard);
            }

            return(true);
        }
Exemplo n.º 3
0
 /// <inheritdoc />
 public abstract bool Execute(TPlayer player, ICardTray <TPlayer, TDeck, TCard> cardTray);