/// <summary> /// Проверка корректности хода. /// </summary> /// <param name="card">первая помещаемая карта</param> /// <returns>true - ход корректен</returns> public override bool IsCorrectMove(Card card) { Card top = GetTopCard(); if (top == null) { return(card.Value == CardValue.Ace); } // Карты одинакового цвета по возрастанию. bool isSameColor = !(top.IsRedSuit() ^ card.IsRedSuit()); bool isNextCard = (card.Value - top.Value) == 1; return(isSameColor && isNextCard); }
private bool IsCorrectMove(Card card, Card top) { // На пустую область можно ложить только короля. if (top == null) { return(card.Value == CardValue.King); } if (card.IsFaceDown || top.IsFaceDown) { return(false); } bool isAlternatingColor = (top.IsRedSuit() ^ card.IsRedSuit()); bool isNextCard = (card.Value - top.Value) == -1; return(isAlternatingColor && isNextCard); }