iniciar-programa
define-nueva-instruccion atras como inicio
        gira-izquierda;
        gira-izquierda;
    fin;
    define-nueva-instruccion derecha como inicio
        atras;
        gira-izquierda;
    fin;
    define-nueva-instruccion fla como inicio
        mientras frente-libre hacer inicio
            avanza;
        fin;
    fin;
    define-nueva-instruccion regresa como inicio
        atras; avanza; atras;
    fin;
    define-nueva-instruccion izquierda como inicio
        gira-izquierda;
    fin;
    define-nueva-instruccion punta(x) como inicio
    si orientado-al-norte entonces inicio
        mientras no-orientado-al-sur hacer izquierda;
        si orientado-al-sur entonces inicio
            fla; derecha; fla; atras;
        fin;
    fin;
        si junto-a-zumbador entonces inicio
            avanza;
            si junto-a-zumbador entonces inicio
                avanza;
                punta(sucede(x));
                si orientado-al-oeste entonces inicio
                    repetir x veces inicio
                        avanza;
                    fin;
                fin;
                derecha;
                mientras junto-a-zumbador hacer inicio
                    avanza;
                fin;
                regresa;
                apagate;
            fin
            sino inicio
            si orientado-al-este entonces inicio
                atras; avanza;
            fin;
            fin;
        fin;
    fin;                                  
    define-nueva-instruccion deja(x) como inicio
        repetir 2 veces inicio
        repetir x veces inicio
        si no-junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
            deja-zumbador;
            si ningun-zumbador-en-la-mochila entonces punta(1);
        fin;
            si junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
                avanza; gira-izquierda; avanza; derecha;
                si no-junto-a-zumbador entonces deja-zumbador;
                si ningun-zumbador-en-la-mochila entonces punta(1);
            fin;
        fin;
        atras;
        mientras frente-libre y orientado-al-sur hacer inicio
            izquierda; avanza; derecha; avanza;
        fin;
        izquierda; avanza; izquierda;
    fin;
    deja(sucede(x));
    fin;
    inicia-ejecucion
    si ningun-zumbador-en-la-mochila entonces inicio
        si ningun-zumbador-en-la-mochila entonces punta(1);
        apagate;
    fin;
    mientras no-orientado-al-este hacer izquierda;
    repetir 2 veces inicio
    si algun-zumbador-en-la-mochila entonces inicio
        si no-junto-a-zumbador entonces inicio
            deja-zumbador;
            si ningun-zumbador-en-la-mochila entonces punta(1);
        fin;
        avanza;
    fin;
    fin;
    izquierda;
    deja(1);
    punta(1);
        apagate;
    termina-ejecucion
finalizar-programa
 