public override bool CanMoveToAnotherPile(int whichOne) { if (Discards !.HasCard(whichOne) == false) { throw new BasicBlankException($"Must have at least one card on {whichOne}"); } var oldCard = Discards.GetLastCard(whichOne); var newCard = Discards.GetLastCard(PreviousSelected); return((int)oldCard.Value + newCard.Value == EnumCardValueList.Jack); }
public override bool CanAddSingleCard(int whichOne, SolitaireCard thisCard) { if (Discards !.HasCard(whichOne) == false) { return(true); } var oldCard = Discards.GetLastCard(whichOne); if (thisCard.Suit != oldCard.Suit) { return(false); } return(oldCard.Value - 1 == thisCard.Value); }
public override bool CanAddSingleCard(int whichOne, SolitaireCard thisCard) { if (Discards !.HasCard(whichOne) == false) { return(true); } if (whichOne == 2) { return(false); } var oldCard = Discards.GetLastCard(whichOne); if (oldCard.Value - 1 == thisCard.Value) { return(true); } return(oldCard.Value == EnumCardValueList.LowAce && thisCard.Value == EnumCardValueList.King); //because round corner. }
public override bool CanMoveToAnotherPile(int whichOne) { if (PreviousSelected == -1) { throw new BasicBlankException("There is no pile even selected"); } if (Discards !.HasCard(whichOne) == false) { return(false); //can only fill an empty spot with a card from the deck } var oldCard = Discards.GetLastCard(whichOne); var newCard = Discards.GetLastCard(PreviousSelected); if (newCard.Suit != oldCard.Suit) { return(false); } return(oldCard.Value - 1 == newCard.Value); }
public override bool CanMoveToAnotherPile(int whichOne) { if (whichOne == 2) { return(false); } if (Discards !.HasCard(whichOne) == false) { return(PreviousSelected == 2); } if (PreviousSelected == 2) { return(false); } var oldCard = Discards.GetLastCard(whichOne); var newCard = Discards.GetLastCard(PreviousSelected); if (oldCard.Value - 1 == newCard.Value) { return(true); } return(oldCard.Value == EnumCardValueList.LowAce && newCard.Value == EnumCardValueList.King); //because round corner. }