iniciar-programa
define-nueva-instruccion cambiarfila como inicio
    si frente-bloqueado  entonces inicio
        si orientado-al-norte y derecha-libre entonces inicio
            repetir 2 veces gira-izquierda;
            mientras frente-libre hacer avanza;
        fin sino inicio
            si frente-bloqueado y derecha-bloqueada y orientado-al-norte entonces inicio
                gira-izquierda;
                mientras frente-libre hacer avanza;
                si frente-bloqueado y derecha-bloqueada y orientado-al-oeste entonces inicio
                    gira-izquierda;
                    mientras frente-libre hacer avanza;
                    mientras no-orientado-al-este hacer gira-izquierda;
                    mientras junto-a-zumbador hacer avanza;
                fin;
            fin;
    fin;
    si orientado-al-sur entonces inicio
            mientras no-orientado-al-este hacer gira-izquierda;
            si frente-libre entonces avanza;
            gira-izquierda;
            repetir 2 veces avanza;
    fin;
fin;
fin;
define-nueva-instruccion buscar como inicio
    si no-junto-a-zumbador y orientado-al-sur entonces inicio
        cambiarfila;
    fin;
    si junto-a-zumbador y orientado-al-sur entonces inicio
        cambiarfila;
    fin;
fin;
define-nueva-instruccion comer(casas) como inicio
    si junto-a-zumbador y orientado-al-norte entonces inicio
        coge-zumbador;
        si frente-libre entonces inicio
            avanza;
        fin sino inicio
            si frente-bloqueado entonces cambiarfila;
        fin;
        comer(sucede(casas));
    fin sino inicio
        si no-junto-a-zumbador y orientado-al-norte entonces inicio
            buscar;
            mientras no-junto-a-zumbador y orientado-al-norte hacer inicio
                si frente-libre entonces avanza;
                si frente-bloqueado entonces inicio
                    si junto-a-zumbador entonces comer(casas);
                    cambiarfila;
                fin;
            fin;
         fin;
        si no-junto-a-zumbador y orientado-al-este entonces inicio
            repetir casas veces deja-zumbador;                        
            si frente-bloqueado entonces apagate;
            mientras no-orientado-al-oeste hacer gira-izquierda;
            mientras frente-libre hacer avanza;
        fin;

        si orientado-al-norte entonces inicio
            buscar;
            si junto-a-zumbador entonces comer(casas);
       fin;
       fin;
fin;
    inicia-ejecucion
        comer(0);
        mientras orientado-al-oeste hacer inicio
            mientras no-orientado-al-norte hacer gira-izquierda;
            repetir 2 veces avanza;
            comer(0);
        fin;
    termina-ejecucion
finalizar-programa
