public static IEnumerable<Card> GetPlayableCards(this PlayerBase player, TrickView trickInProgress)
 {
     var validator = new PlayValidator(trickInProgress);
     return player
         .CardList
         .Where(c => validator
             .Validate(new Play(c, player))
             .IsValid)
         .OrderBy(c => c.Suit)
         .ThenBy(c => c.Rank);
 }
Example #2
0
 public override Card GetPlay(DealView dealInProgress, TrickView trickInProgress)
 {
     var cards = this.GetPlayableCards(trickInProgress);
     // if there are point cards, attempt to duck the trick
     var highCard = trickInProgress.WinningPlay.Card;
     if (trickInProgress.HasPointCards &&
         cards.Any(c => c.IsOutrankedBy(highCard)))
     {
         cards = cards.OutrankedBy(highCard);
     }
     return cards.First();
 }
Example #3
0
 public override void NotifyTrickResults(TrickView completedTrick)
 {
 }
Example #4
0
 public override Card GetPlay(DealView dealInProgress, TrickView trickInProgress)
 {
     return this
         .GetPlayableCards(trickInProgress)
         .Choose();
 }