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); } }
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); }
GenNode CreateNode(Vector3 position) { GameObject newNode = new GameObject("Node " + nodeId.ToString()); nodeId++; newNode.AddComponent(typeof(GenNode)); GenNode node = newNode.GetComponent <GenNode>(); return(node); }
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); } }
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); }
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); }
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"; } }
// Use this for initialization void Start() { GenNode node = CreateNode(new Vector3(0, 0, 0)); nodes.Add(node); }