public SheepCard PlayStrongestLoosingCard(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)); var winnableCards = GameStateUtils.GetCardsThatCouldWin(trick, legalCards); return(legalCards.Except(winnableCards).OrderBy(c => CardUtil.GetRank(c)).First()); }
public SheepCard PlayWeakestWin(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)); var winnableCards = GameStateUtils.GetCardsThatCouldWin(trick, legalCards); return(winnableCards.OrderByDescending(c => CardUtil.GetRank(c)).First()); }
public bool CanILoose(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)).ToList(); var winnableCards = GameStateUtils.GetCardsThatCouldWin(trick, legalCards).ToList(); var looseableCards = legalCards.Except(winnableCards); return(looseableCards.Any()); }
public SheepCard PlaySecondStrongestLoosingCard(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)); var winnableCards = GameStateUtils.GetCardsThatCouldWin(trick, legalCards); var cards = legalCards.Except(winnableCards).OrderBy(c => CardUtil.GetRank(c)).ToList(); if (cards.Count == 1) { return(cards.Single()); } else { return(cards[1]); } }
public bool UnplayedCardsBeatPlayedCards(IPlayer thisPlayer, ITrick trick) { var unrevealedCards = GetUnrevealedCards(thisPlayer, trick); return(GameStateUtils.GetCardsThatCouldWin(trick, unrevealedCards).Any()); }
public bool ICanWinTrick(IPlayer thisPlayer, ITrick trick) { var playableCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)); return(GameStateUtils.GetCardsThatCouldWin(trick, playableCards).Any()); }
public bool CanIWin(IPlayer thisPlayer, ITrick trick) { var legalCards = thisPlayer.Cards.Where(c => trick.IsLegalAddition(c, thisPlayer)).ToList(); return(GameStateUtils.GetCardsThatCouldWin(trick, legalCards).Any()); }