public TreeNode Bfs(){ //No usar, hay que revisarlo
        initTree();
        this.limitDepth = Integer.MAX_VALUE;
        LinkedList<TreeNode> queue = new LinkedList<>();
        ArrayList<Point> agentsLocations= new ArrayList<>();
        agentsLocations.addAll(this.otherAgents);
        ArrayList<TreeNode> list = new ArrayList<>();
        queue.add(tree.getRoot());
        while(!queue.isEmpty()){
            actualNode = queue.remove();
            if(actualNode.getMyGraphNode().getChoices()>=1 && !actualNode.getMyGraphNode().equals(this.root)){
                return actualNode;
            }
            list.clear();
            sucesor(list);
            Collections.shuffle(list);
            for(TreeNode n:list){
                boolean avoidAgent=false;
                for(Point p:agentsLocations){
                    if(p.x==n.getMyGraphNode().getX()&&p.y==n.getMyGraphNode().getY()){
                        avoidAgent=true;
                        break;
                    }
                }
                if(!avoidAgent){
                    queue.add(n);
                }
            }
            agentsLocations.clear();
        }
        return null;
    }