static int EvaluateDurationAndPrint(IADTreeNode node, ADTreeContext context) { EvaluateDurationVisitor v = new EvaluateDurationVisitor(); var value = v.GetValue(node, v, context); Console.WriteLine("Minimum attack time: " + value); Console.WriteLine(""); Console.WriteLine("----------------------------------------"); return value; }
public int GetValue(IADTreeNode a, EvaluateDurationVisitor b, ADTreeContext c) { if (a is LEAF) { return((int)a.Accept(this)); } else if (a is OR) { int v1 = GetValue(a.childs[0], b, c); int v2 = GetValue(a.childs[1], b, c); return(v1 > v2 ? v2 : v1); } else { return(GetValue(a.childs[0], b, c) + GetValue(a.childs[1], b, c)); } }