コード例 #1
0
ファイル: ISMCTSPlayer.cs プロジェクト: W3SS/cardstock
        private static int NUMTESTS = 5; //previously 20

        public ISMCTSPlayer(Perspective perspective) : base(perspective)
        {
            playeridx     = perspective.GetIdx();
            plays         = new Dictionary <Tuple <CardGame, int>, int>(new InfoSetComparison(playeridx));
            wins          = new Dictionary <Tuple <CardGame, int>, double>(new InfoSetComparison(playeridx));
            movestatetree = new Dictionary <Tuple <CardGame, int>, Tuple <CardGame, int>[]>(new InfoSetComparison(playeridx));
        }
コード例 #2
0
ファイル: AIPlayer.cs プロジェクト: W3SS/cardstock
        // CODE FOR UPDATING STATISTICS FOR HEURISTICS
        public void RecordHeuristics(double[][] inverseRankSums)
        {
            if (perspective.GetWorld() != null)
            {
                double[] inverseRankSum = inverseRankSums[perspective.GetIdx()];
                double[] myLeadView     = new double[inverseRankSums.Length];

                // WHAT DOES WRS stand for?
                double[] wrs = new double[inverseRankSum.Length];

                for (int item = 0; item < inverseRankSum.Length; ++item)
                {
                    wrs[item] = ((numPlayers - (1.0 / inverseRankSum[item])) /
                                 (numPlayers - 1));
                }

                (var minidx, var maxidx) = MinMaxIdx(inverseRankSum);
                var max = wrs[maxidx];
                var min = wrs[minidx];

                double avg = 0;
                for (int i = 0; i < wrs.Length; i++)
                {
                    avg += wrs[i];
                }
                avg /= (double)wrs.Length;

                var variance = Math.Abs(max - min);

                perspective.GetWorld().AddInfo(variance, avg, wrs[maxidx]);
                for (int i = 0; i < myLeadView.Length; i++)
                {
                    myLeadView[i] = ((numPlayers - (1.0 / inverseRankSums[i][maxidx])) /
                                     (numPlayers - 1));
                    //Console.WriteLine("Converted " + inverseRankSums[i][maxidx] + " into " + myLeadView[i]);
                }
                perspective.AddLeadsList(new Tuple <int, double[]>(perspective.GetIdx(), myLeadView));

                leadList.Add(max);
            }
        }