Exemple #1
0
        public EuchreGame()
        {
            LivePlayer  = new EuchrePlayer(false, CompPlayer2);
            CompPlayer1 = new EuchrePlayer(true, CompPlayer3);
            CompPlayer2 = new EuchrePlayer(true, LivePlayer);
            CompPlayer3 = new EuchrePlayer(true, CompPlayer1);
            PlayerOrder = new List <EuchrePlayer>();

            LivePlayer.IsDealer = true;
        }
Exemple #2
0
        public Card PlayCard(string trumpSuit, EuchrePlayer trickWinner, List <Card> playedThisHand, List <Card> playedThisTrick)
        {
            //If my partner is already winning the trick, then I don't want to out-play him unless I have to
            var tryingToWin = !IsTrickWinnerMyPartner(trickWinner);
            //If my partner IsComputer then I am one of the live player's opponents
            var isLivePlayerOpponent = MyPartner.IsComputer;

            if (playedThisTrick.Count == 0 && playedThisHand.Count == 0)
            {
                var rightBower = Hand.FirstOrDefault(c => c.Face == CardFaces.Jack.Key && c.Suit == trumpSuit);
                var leftBower  =
                    Hand.FirstOrDefault(c => c.Face == CardFaces.Jack.Key && c.Suit == trumpSuit.GetOppositeSuit());
                if (rightBower != null)
                {
                    return(rightBower);
                }

                if (MyPartner.IsTrumpCaller && leftBower != null)
                {
                    return(leftBower);
                }

                var nonTrumpAce = Hand.FirstOrDefault(c => c.Face == CardFaces.AceHigh.Key && c.Suit != trumpSuit);
                if (nonTrumpAce != null)
                {
                    return(nonTrumpAce);
                }

                var nonTrumpKing = Hand.FirstOrDefault(c => c.Face == CardFaces.King.Key && c.Suit != trumpSuit);
                if (nonTrumpKing != null)
                {
                    return(nonTrumpKing);
                }

                var nonTrumpLowCard = Hand.FirstOrDefault(c => c.Suit != trumpSuit);
                if (nonTrumpLowCard != null)
                {
                    return(nonTrumpLowCard);
                }

                return(Hand.RandomItem());
            }
            else if (playedThisTrick.Count == 0 && playedThisHand.Count > 0)
            {
                return(Hand.RandomItem());
            }
            else
            {
                return(Hand.RandomItem());
            }
        }
Exemple #3
0
 public EuchreTeam(EuchrePlayer p1, EuchrePlayer p2)
 {
     Score   = 0;
     Player1 = p1;
     Player2 = p2;
 }
Exemple #4
0
        private bool IsTrickWinnerMyPartner(EuchrePlayer trickWinner)
        {
            var result = trickWinner == MyPartner;

            return(result);
        }
Exemple #5
0
 public EuchrePlayer(bool isComp, EuchrePlayer myPartner) : base(isComp, 0)
 {
     MyPartner = myPartner;
     Hand      = new List <Card>();
 }