public GameTreeNode bestMove(){
      
      ArrayList<GameTreeNode> good = new ArrayList<GameTreeNode>();
      for (GameTreeNode n : children){
        if (n.getValue() == -1) good.add(n);
      }
      if (good.size()>0) return good.get(good.size()-1);
      int next = (int)(Math.random()*children.size());
      return children.get(next);
    }