protected Tuple<Double,Double> Eval(Graph g) {
		switch(g.gt){
		case ZeroSum:
			if(is_a_terminal_node(g)){
				Agent agent = getAgent(0, g);
				if(isDead(g, agent))
					return new Tuple<Double, Double>(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY);//TODO FIX
				return new Tuple<Double, Double>(agent.getCost(),-agent.getCost());
				}
			else 
				return h(g);
		default:	
				return h(g);//TODO
		}
	}