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

    inicia-ejecucion

        orientar;
        mientras algun-zumbador-en-la-mochila hacer inicio
            mientras no-junto-a-zumbador y frente-libre hacer avanza;
            buscar;
            si frente-libre entonces avanza;
            si frente-bloqueado entonces gira-si-bloqueado;
        fin;
       apagate;
    termina-ejecucion
finalizar-programa
 