@Override
    public int accion(boolean PF, boolean PD, boolean PA, boolean PI, boolean MT,
            boolean AF, boolean AD, boolean AA, boolean AI, boolean RS, boolean RColor,
            boolean RShape, boolean RSize, boolean RWeight, int EL) {
        
        if (MT) return -1;
        
        Stack<Integer> posibleMoves;
        
        if(!actualNode.isAlreadyExplored()){
            posibleMoves=analyzePerception(PF, PD, PA, PI, RS);
        }else{
            posibleMoves=getChoicesLeft();
        }
        
        Stack<Integer> nextMoves = computeChoices(posibleMoves, AF, AD, AA, AI);        
        Collections.shuffle(nextMoves);// Decisión Aleatoria, si se comenta: forward, right, left
        
        if (nextMoves.isEmpty()){
            return 5; // Go back to a decision node
        }
        
        return nextMoves.pop();
    }