iniciar-programa

    define-nueva-instruccion norte como inicio
        mientras no orientado-al-norte hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion oeste como inicio
        mientras no orientado-al-oeste hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion este como inicio
        mientras no orientado-al-este hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion sur como inicio
        mientras no orientado-al-sur hacer inicio
            gira-izquierda;
        fin;
    fin;

    define-nueva-instruccion arriba como inicio
        norte;
        avanza;
    fin;

    define-nueva-instruccion abajo como inicio
        sur;
        avanza;
    fin;

    define-nueva-instruccion derecha como inicio
        este;
        avanza;
    fin;

    define-nueva-instruccion izquierda como inicio
        oeste;
        avanza;
    fin;

    define-nueva-instruccion camina-a-tope como inicio
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;

    define-nueva-instruccion coge-todos como inicio
        mientras junto-a-zumbador hacer inicio
            coge-zumbador;
        fin;
    fin;

    define-nueva-instruccion deja-todos como inicio
        mientras algun-zumbador-en-la-mochila hacer inicio
            deja-zumbador;
        fin;
    fin;

    define-nueva-instruccion ir-b1 como inicio
        repetir 5 veces inicio
            avanza;
        fin;
        derecha;
        abajo;
        este;
    fin;

    define-nueva-instruccion recoge-col como inicio
        norte;
        mientras junto-a-zumbador hacer inicio
            coge-todos;
            si frente-libre entonces inicio
                avanza;
            fin;
        fin;
        sur;
        camina-a-tope;
        este;
    fin;

    define-nueva-instruccion recoger como inicio
        mientras frente-libre hacer inicio
            recoge-col;
            avanza;
        fin;
        recoge-col;
    fin;

    define-nueva-instruccion dejar como inicio
        arriba;
        oeste;
        camina-a-tope;
        sur;
        camina-a-tope;
        si junto-a-zumbador entonces inicio
            derecha;
            deja-todos;
            izquierda;
        fin
        sino inicio
            deja-todos;
        fin;
    fin;

    define-nueva-instruccion procesa-b1 como inicio
        ir-b1;
        recoger;
        dejar;
    fin;

    define-nueva-instruccion ir-b2 como inicio
        repetir 5 veces inicio
            arriba;
        fin;
        repetir 7 veces inicio
            derecha;
        fin;
        abajo;
        este;
    fin;

    define-nueva-instruccion procesa-b2 como inicio
        ir-b2;
        recoger;
        dejar;
    fin;

    define-nueva-instruccion resta como inicio
        coge-zumbador;
        derecha;
        si no-junto-a-zumbador entonces inicio
            izquierda;
            deja-zumbador;
            derecha;
        fin
        sino inicio
            coge-zumbador;
            izquierda;
        fin;
    fin;

    define-nueva-instruccion deja-basura como inicio
        arriba;
        deja-todos;
        abajo;
    fin;

    define-nueva-instruccion comparar como inicio
        mientras junto-a-zumbador hacer inicio
            resta;
        fin;
        deja-basura;
        derecha;
        oeste;
        mientras frente-libre hacer inicio
            coge-todos;
            avanza;
        fin;
        coge-todos;
    fin;


    define-nueva-instruccion mitad como inicio
        mientras algun-zumbador-en-la-mochila hacer inicio
            deja-zumbador;
            derecha;
            deja-zumbador;
            izquierda;
        fin;
    fin;

    inicia-ejecucion
        procesa-b1;
        procesa-b2;
        comparar;
        mitad;
        apagate;
    termina-ejecucion

finalizar-programa

 