public void Test_GenerateFiles() { string libDir = Path.GetFileNameWithoutExtension(CodeBase.Get(Assembly.GetExecutingAssembly())); string dataDir = Props.Global.Get("bds.DataDir"); string workingDir = Directory.GetCurrentDirectory() + @"..\..\..\..\"; GameDefinition gd = XmlSerializerExt.Deserialize <GameDefinition>( Path.Combine(dataDir, "ai.pkr.metastrategy.kuhn.gamedef.1.xml")); using (TextWriter tw = new StreamWriter(Path.Combine(workingDir, "p1.gv"))) { GenTree tree = new GenTree { GameDef = gd, Kind = GenTree.TreeKind.PlayerTree, HeroPosition = 1 }; DeckGenNode root = new DeckGenNode(tree, gd.MinPlayers); Vis vis = new Vis { Output = tw }; SetVisAttributes(vis); //vis.ShowExpr.Add(new ExprFormatter("s[d].Node.Id", "id:{1}")); vis.Walk(tree, root); } using (TextWriter tw = new StreamWriter(Path.Combine(workingDir, "g.gv"))) { GenTree tree = new GenTree { GameDef = gd, Kind = GenTree.TreeKind.GameTree, HeroPosition = 0 }; DeckGenNode root = new DeckGenNode(tree, gd.MinPlayers); Vis vis = new Vis { Output = tw }; SetVisAttributes(vis); //vis.ShowExpr.Add(new ExprFormatter("s[d].Node.Id", "id:{1}")); vis.Walk(tree, root); } }
/// <summary> /// Build a tree for position pos. /// </summary> public void Build(ActionTree atTree, int pos) { //GetChild = (GenTree t, DeckGenNode n, ref int i, out DeckGenNode c) => // { // GenNode c1; // GenTree.TreeGetChild(t, n, ref i, out c) // }; _pos = pos; _atTree = atTree; _atTree.Positions[pos] = new ActionTreeNode(); GenTree genTree = new GenTree { GameDef = _atTree.GameDef, Kind = GenTree.TreeKind.ActionTree }; DeckGenNode genRoot = new DeckGenNode(genTree, 2); NodesCount = 0; Walk(genTree, genRoot); }