iniciar-programa
define-nueva-instruccion g(n) como
    repetir n veces gira-izquierda;
define-nueva-instruccion checa como
inicio
    si orientado-al-oeste y junto-a-zumbador entonces
    inicio
        repetir 5 veces
            si junto-a-zumbador entonces
                coge-zumbador
            sino
            inicio
                g(2);
                repetir 4 veces deja-zumbador;
            fin;
        si orientado-al-oeste entonces
        inicio
            checa;
            repetir 5 veces deja-zumbador;
        fin;
    fin;
fin;
define-nueva-instruccion pared como
inicio
    mientras izquierda-bloqueada y frente-libre hacer avanza;
fin;
    inicia-ejecucion
        deja-zumbador;
        mientras frente-libre o frente-bloqueado hacer
        inicio
            pared;
            si orientado-al-oeste y frente-bloqueado y junto-a-zumbador y izquierda-bloqueada entonces
            inicio
                checa;
                si orientado-al-este entonces
                inicio
                    repetir 4 veces deja-zumbador;
                    apagate;
                fin;
            fin;
           repetir 5 veces deja-zumbador;
           si izquierda-libre entonces
               gira-izquierda
           sino
               g(3);
           si frente-libre entonces avanza;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
