iniciar-programa
    define-nueva-instruccion gira(n) como
    inicio
        repetir n veces
        gira-izquierda;
    fin;
    define-nueva-instruccion deja(n)como
    inicio
        si algun-zumbador-en-la-mochila entonces
        inicio
            repetir n veces
                deja-zumbador;
            deja(sucede(n));
        fin
        sino
        inicio
            mientras junto-a-zumbador hacer
            coge-zumbador;
            mientras no-orientado-al-este y algun-zumbador-en-la-mochila hacer
            gira-izquierda;
                si algun-zumbador-en-la-mochila entonces
                inicio
                repetir precede(precede(n)) veces
                    avanza;
                gira(2);
                fin;
        fin;
    fin;

    define-nueva-instruccion pon(n) como
    inicio
        si algun-zumbador-en-la-mochila entonces
        inicio
            si no-junto-a-zumbador entonces
            repetir n veces
            inicio
            deja-zumbador;
            si frente-libre y orientado-al-norte entonces
            avanza;
            fin;
            mientras no-orientado-al-sur hacer
            gira-izquierda;
            mientras frente-libre hacer
            avanza;
            si frente-bloqueado y derecha-bloqueada y junto-a-zumbador entonces
            apagate;
            si frente-bloqueado entonces
            inicio
            gira(3);
            si frente-libre entonces
            avanza;
            gira(3);
            fin;
            pon(sucede(n));

        fin;
     fin;
    inicia-ejecucion
        deja(1);
        pon(1);
        apagate;
    termina-ejecucion
finalizar-programa
