Esempio n. 1
0
        public int GetZeroSumTrickScore()
        {
            Trick currentTrick = tricks[tricks.Count - 1];
            int   trickPoints  = currentTrick.GetCurrentTrickPoints();
            int   trickWinner  = currentTrick.GetCurrentTrickWinner();

            if (trickWinner != id && trickWinner != (id + 2) % 4)
            {
                trickPoints *= -1;
            }
            return(trickPoints);
        }
Esempio n. 2
0
        internal int GetCurrentTrickResponsible()
        {
            Trick currentTrick = tricks[tricks.Count - 1];
            int   partnerID    = ((id + 2) % 4);
            int   winnerId     = currentTrick.GetCurrentTrickWinner();

            if (!currentTrick.IsFull())
            {
                Console.WriteLine("Current trick is not full to call GetResponsible!");
                if (tricks.Count > 1)
                {
                    currentTrick = tricks[tricks.Count - 2];
                }
            }

            if (currentTrick.IsFull())
            {
                if (winnerId == id || winnerId == partnerID)
                {
                    return(winnerId);
                }
                else
                {
                    int myPlayPoints      = Card.GetValue(currentTrick.GetPlayOf(id));
                    int partnerPlayPoints = Card.GetValue(currentTrick.GetPlayOf(partnerID));
                    if (myPlayPoints > 0 || partnerPlayPoints > 0)
                    {
                        return(myPlayPoints >= partnerPlayPoints ? id : partnerID);
                    }
                    else
                    {
                        return(winnerId);
                    }
                }
            }
            return(winnerId);
        }
Esempio n. 3
0
        public int GetCurrentTrickWinner()
        {
            Trick currentTrick = tricks[tricks.Count - 1];

            return(currentTrick.GetCurrentTrickWinner());
        }