Ejemplo n.º 1
0
        private int GetTricksTaken()
        {
            int count = _tricks.Sum(t => t.Winner.GetSide() == Declarer.GetSide() ? 1 : 0);

            return(count - 6);
            //Todo: limit to positive numbers ???
        }
Ejemplo n.º 2
0
        public override string ToString()
        {
            //Declarers (x) made x tricks, defenders (y) made y tricks.
            //The contract was (not) made by/plus x/y tricks under/over
            //
            StringBuilder sb = new StringBuilder();

            sb.Append(string.Format("Declarers ({0}) made {1} trick{2}.  ",
                                    Declarer.GetSide(), TricksTaken, TricksTaken == 1 ? "" : "s"));
            sb.AppendLine(string.Format("Defenders ({0}) made {1} trick{2}.",
                                        Declarer.GetSide().OtherSide(), TricksDefeated, TricksDefeated == 1 ? "" : "s"));
            if (MadeContract)
            {
                if (TricksOverContract == 0)
                {
                    sb.AppendLine(string.Format("The contract({0}) was made exactly.", Contract));
                }
                else
                {
                    sb.AppendLine(string.Format("The contract({0}) was made with {1} overtrick{2}.",
                                                Contract, TricksOverContract, TricksOverContract == 1 ? "" : "s"));
                }
            }
            else
            {
                sb.AppendLine(string.Format("The contract({0}) was defeated by {1} undertrick{2}.",
                                            Contract, TricksUnderContract, TricksUnderContract == 1 ? "" : "s"));
            }
            //FIXME - display better, give totals, make sure it is correct
            sb.AppendLine(string.Format("Points for Declarer: Contract:{0} OverTricks:{1} Level Bonus:{2} Insults:{3}",
                                        ContractScore, GetOverTrickPoints(), GetLevelBonus(), GetInsult()));
            sb.AppendLine(string.Format("Points for Defender {0}", GetPenalties()));
            return(sb.ToString());
        }