Пример #1
0
        private void Step1()
        {
            GenTree tree = new GenTree {
                GameDef = GameDef, Kind = GenTree.TreeKind.GameTree
            };
            GenNode root = CreateRootGenNode(tree);
            WalkTree <GenTree, GenNode, int, GenContext> walkTree = new WalkTree <GenTree, GenNode, int, GenContext>();

            walkTree.OnNodeBegin = Step1OnNodeBegin;
            GameTree             = new TreeNode();
            _step1Root           = GameTree;
            walkTree.Walk(tree, root);


            PlayerTrees = new TreeNode[GameDef.MinPlayers].Fill(i => new TreeNode());
            for (int p = 0; p < PlayerTrees.Length; ++p)
            {
                tree = new GenTree {
                    GameDef = GameDef, Kind = GenTree.TreeKind.PlayerTree, HeroPosition = p
                };
                root                 = CreateRootGenNode(tree);
                walkTree             = new WalkTree <GenTree, GenNode, int, GenContext>();
                walkTree.OnNodeBegin = Step1OnNodeBegin;
                _step1Root           = PlayerTrees[p];
                walkTree.Walk(tree, root);
            }
        }
Пример #2
0
 public void addNodeGeneration(string name, int idx, GenNode function)
 {
     EventHandler ev = new System.EventHandler(nodeMenuNodeGen_Click);
       MenuItem item = new MenuItem(name, ev);
       item.Index = idx;
       NodeMenu.MenuItems.Add(idx, item);
       m_node_func.Insert(idx, function);
 }
Пример #3
0
        public void addNodeGeneration(string name, int idx, GenNode function)
        {
            EventHandler ev   = new System.EventHandler(nodeMenuNodeGen_Click);
            MenuItem     item = new MenuItem(name, ev);

            item.Index = idx;
            NodeMenu.MenuItems.Add(idx, item);
            m_node_func.Insert(idx, function);
        }
Пример #4
0
    GenNode CreateNode(Vector3 position)
    {
        GameObject newNode = new GameObject("Node " + nodeId.ToString());

        nodeId++;

        newNode.AddComponent(typeof(GenNode));
        GenNode node = newNode.GetComponent <GenNode>();

        return(node);
    }
Пример #5
0
 protected override void CustomizeEdgeAttributes(GenTree tree, GenNode node, GenNode parent, List <VisPokerTreeContext <GenNode, int> > stack, int depth, ai.lib.algorithms.tree.VisTree <GenTree, GenNode, int, VisPokerTreeContext <GenNode, int> > .EdgeAttributeMap attr)
 {
     base.CustomizeEdgeAttributes(tree, node, parent, stack, depth, attr);
     if (attr.label.Contains("d"))
     {
         attr.label = attr.label + "             ";
     }
     if (attr.label.Contains("1d{K}"))
     {
         attr.label = String.Format("<<FONT POINT-SIZE=\"15\">{0}</FONT>>", attr.label);
     }
 }
Пример #6
0
        private void nodeMenuNodeGen_Click(object sender, System.EventArgs e)
        {
            MenuItem  item = (MenuItem)sender;
            GenNode   gen  = (GenNode)m_node_func[item.Index];
            GraphNode node = gen(m_click);

            if (node == null)
            {
                return;
            }
            m_graph.addUnconnectedNode(node);
        }
Пример #7
0
        protected bool Step1OnNodeBegin(GenTree tree, GenNode node, List <GenContext> stack, int depth)
        {
            GenContext context = stack[depth];

            TreeNode newNode = depth == 0 ? _step1Root : new TreeNode();

            newNode.Id           = node.Id;
            newNode.State        = node.State;
            newNode.Action       = node.Action;
            newNode.ChanceProbab = node.ChanceProbab;

            if (depth > 0)
            {
                GenContext parentContext = stack[depth - 1];
                parentContext.SecondTreeNode.Children.Add(newNode);
            }
            context.SecondTreeNode = newNode;
            return(true);
        }
Пример #8
0
            protected override void CustomizeNodeAttributes(GenTree tree, GenNode node, List <VisPokerTreeContext <GenNode, int> > stack, int depth, ai.lib.algorithms.tree.VisTree <GenTree, GenNode, int, VisPokerTreeContext <GenNode, int> > .NodeAttributeMap attr)
            {
                base.CustomizeNodeAttributes(tree, node, stack, depth, attr);

                if (node.State.Players[1].PrivateCards == "K")
                {
                    for (int d = depth; d > 0; --d)
                    {
                        if (stack[d].Node.Action.Kind == Ak.c && stack[d].Node.Action.Position == 0)
                        {
                            attr.penwidth = 3;
                            attr.color    = "#0000FF";
                            break;
                        }
                    }
                }
                if (tree.Kind == GenTree.TreeKind.PlayerTree && node.Id == 21)
                {
                    attr.label = "n";
                }
            }
Пример #9
0
    // Use this for initialization
    void Start()
    {
        GenNode node = CreateNode(new Vector3(0, 0, 0));

        nodes.Add(node);
    }