Example #1
0
        void CalculateBr_OnNodeBegin(StrategyTree tree, CalculateBrContext[] stack, int depth)
        {
            CalculateBrContext context = stack[depth];
            Int64 n = context.NodeIdx;

            if (depth > 0)
            {
                context.IsBr = stack[depth - 1].IsBr;
            }

            if (tree.Nodes[n].IsPlayerAction(HeroPosition))
            {
                // Hero made a move
                Int64 pn = stack[depth - 1].NodeIdx;
                if (tree.Nodes[n].Probab == tree.Nodes[pn].Probab && context.IsBr)
                {
                    tree.Nodes[n].Probab  = 1;
                    tree.Nodes[pn].Probab = double.MinValue;
                    context.IsBr          = true;
                }
                else
                {
                    context.IsBr         = false;
                    tree.Nodes[n].Probab = 0;
                }
            }
        }
Example #2
0
        void CalculateBr_OnNodeEnd(StrategyTree tree, CalculateBrContext[] stack, int depth)
        {
            CalculateBrContext context = stack[depth];
            Int64 n = context.NodeIdx;

            if (tree.Nodes[n].IsDealerAction || tree.Nodes[n].Position != HeroPosition)
            {
                tree.Nodes[n].Probab = 0;
            }
        }