コード例 #1
0
        private int CalculateWeight(TrickTracker tracker, Card selectedCard, List <Card> selectedTrick, bool scopa)
        {
            // Make a decision here based on the number of denari as well as the primiera value
            // of the in the trick (also base this on player need. i.e. if the primiera value is above
            // the mid-range value (78) then we can prioritize denari and vise-versa for denari if the
            // player has more than 5 denari we can prioritize pirmiera.  As a last criteria we pick up
            // as many cards as possible in each trick.
            List <Card> trick = new List <Card>(selectedTrick);

            trick.Add(selectedCard);
            TrickTracker newTracker = tracker.GetPossibleScores(trick, scopa);
            int          weight     = ((!tracker.SetteBello && newTracker.SetteBello) ? 84 : 0)
                                      + (scopa ? 84 : 0)
                                      + ((tracker.PrimieraValue > 78) ? 1 : 2) * (newTracker.PrimieraValue - tracker.PrimieraValue)
                                      + ((tracker.DenariCount > 5) ? 1 : 2) * (newTracker.DenariCount - tracker.DenariCount)
                                      + (newTracker.CardCount - tracker.CardCount);

            Console.Out.WriteLine("SetteBello " + newTracker.SetteBello + ", Scopa " + scopa);
            Console.Out.WriteLine("Primiera " + newTracker.PrimieraValue + " <- " + tracker.PrimieraValue);
            Console.Out.WriteLine("Denari   " + newTracker.DenariCount + " <- " + tracker.DenariCount);
            Console.Out.WriteLine("Cards    " + newTracker.CardCount + " <- " + tracker.CardCount);
            Console.Out.WriteLine("Cards Taken " + Card.ToString(newTracker.CardsTaken));
            Console.Out.WriteLine("Trick " + Card.ToString(selectedTrick) + " with " + selectedCard + " := " + weight);
            return(weight);
        }
コード例 #2
0
 public TrickTracker GetPossibleScores(List <Card> cards, bool scopa)
 {
     return(trickTracker.GetPossibleScores(cards, scopa));
 }