iniciar-programa
    define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
    define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
    define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;
    define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
    define-prototipo-instruccion busca;
    define-nueva-instruccion camina como inicio
        norte;
        si frente-libre entonces inicio
            avanza;
            busca;
            sur;
            avanza;
        fin;
        este ;
        si frente-libre entonces inicio
            avanza;
            busca;
            oeste;
            avanza;
        fin;
        sur;
        si frente-libre entonces inicio
            avanza;
            busca;
            norte;
            avanza;
        fin;
        oeste;
        si frente-libre entonces inicio
            avanza;
            busca;
            este;
            avanza;
        fin;
    fin;
    define-prototipo-instruccion limpia;
    define-nueva-instruccion caminar como inicio
        norte;
        si frente-libre entonces inicio
            avanza;
            limpia;
            sur;
            avanza;
        fin;
        este ;
        si frente-libre entonces inicio
            avanza;
            limpia;
            oeste;
            avanza;
        fin;
        sur;
        si frente-libre entonces inicio
            avanza;
            limpia;
            norte;
            avanza;
        fin;
        oeste;
        si frente-libre entonces inicio
            avanza;
            limpia;
            este;
            avanza;
        fin;
    fin;
    define-nueva-instruccion busca como inicio
        si no-junto-a-zumbador entonces inicio
            deja-zumbador;
            camina;
        fin;
    fin;
    define-nueva-instruccion limpia como inicio
        si junto-a-zumbador entonces inicio
            si no (frente-bloqueado y izquierda-bloqueada y derecha-bloqueada) entonces inicio
                coge-zumbador;
            fin;
            caminar;
        fin;
    fin;
    inicia-ejecucion
        busca;
        limpia;
        repetir 4 veces inicio
            si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces inicio
                gira-izquierda;
                si izquierda-libre entonces inicio
                    repetir 3 veces gira-izquierda;
                    si no-junto-a-zumbador entonces deja-zumbador;
                fin sino inicio
                    repetir 3 veces gira-izquierda;
                    mientras junto-a-zumbador hacer coge-zumbador;
                fin;
            fin;
            gira-izquierda;
        fin;
        apagate;
    termina-ejecucion
finalizar-programa
