public override bool CanAddCard(int pile, SolitaireCard thisCard) { if (pile > 3) { return(base.CanAddCard(pile, thisCard)); } //for this; starts from kings and moves down if (Piles.HasCard(pile) == false) { return(thisCard.Value == EnumCardValueList.King); } var oldCard = Piles.GetLastCard(pile); if (oldCard.Suit != thisCard.Suit) { return(false); } return(oldCard.Value == thisCard.Value + 1); }