iniciar-programa
  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 norte como mientras no-orientado-al-norte hacer gira-izquierda;
  define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
 define-nueva-instruccion busca1 como
     inicio
          si junto-a-zumbador entonces
              inicio
                  coge-zumbador;
                  busca1;
              fin sino
                  inicio
                      mientras no junto-a-zumbador y frente-libre hacer avanza;
                      si frente-bloqueado y derecha-bloqueada Y NO JUNTO-A-ZUMBADOR entonces
                          inicio
                              oeste;
                              mientras frente-libre hacer avanza;
                              sur;
                              mientras frente-libre hacer avanza;
                              norte;
                              mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                              sal-de-instruccion;
                          fin;
                      si junto-a-zumbador entonces busca1;
                      si frente-bloqueado entonces
                          inicio
                              sur;
                              mientras frente-libre hacer avanza;
                              este;
                              si frente-libre entonces avanza;
                              norte;
                              busca1;
                          fin;
                  fin;
     fin;
 define-nueva-instruccion busca2(i) como
     inicio
           si junto-a-zumbador entonces
               inicio
                   coge-zumbador;
                   si junto-a-zumbador entonces
                       inicio
                           coge-zumbador;
                            busca2(sucede(i));
                       fin sino
                           inicio
                               deja-zumbador;
                               si frente-libre entonces avanza;
                               SI FRENTE-BLOQUEADO Y DERECHA-BLOQUEADA  ENTONCES
                                   INICIO
                                       SI JUNTO-A-ZUMBADOR ENTONCES
                                           INICIO
                                               COGE-ZUMBADOR;
                                               SI JUNTO-A-ZUMBADOR ENTONCES
                                                   INICIO
                                                       COGE-ZUMBADOR;
                                                       BUSCA2(SUCEDE(I));
                                                   FIN SINO
                                                       INICIO
                                                           DEJA-ZUMBADOR;
                                                       FIN;
                                           FIN;
                                       OESTE;
                                       MIENTRAS FRENTE-LIBRE HACER AVANZA;
                                       SUR;
                                       MIENTRAS FRENTE-LIBRE HACER AVANZA;
                                       NORTE;
                                       BUSCA1;
                                                                      repetir i veces coge-zumbador;
                                       repetir i veces si junto-a-zumbador entonces coge-zumbador;
                                       este;
                                       si frente-libre entonces avanza;
                                       norte;
                                       repetir i veces
                                           inicio
                                               deja-zumbador;
                                               deja-zumbador;
                                               si frente-libre entonces avanza;
                                           fin;
                                       oeste;
                                       si frente-libre entonces avanza;
                                       sur;
                                       mientras frente-libre hacer avanza;
                                       norte;
                                       mientras junto-a-zumbador haCER COGE-ZUMBADOR;
                                       MIENTRAS ALGUN-ZUMBADOR-EN-LA-MOCHILA HACER
                                           INICIO
                                               DEJA-ZUMBADOR;
                                               SI FRENTE-LIBRE ENTONCES AVANZA;
                                           FIN;
                                       APAGATE;
                                   FIN;
                               SI FRENTE-BLOQUEADO Y JUNTO-A-ZUMBADOR ENTONCES
                                   INICIO
                                       SUR;
                                       MIENTRAS FRENTE-LIBRE HACER AVANZA;

                                       ESTE;
                                       SI FRENTE-LIBRE ENTONCES AVANZA;

                                       NORTE;
                                       BUSCA2(I);
                                   FIN;
                           fin;
                      busca2(i);
               fin sino
                   inicio
                       mientras no junto-a-zumbador y frente-libre hacer avanza;
                       si frente-bloqueado y derecha-bloqueada y orientado-al-norte Y  NO JUNTO-A-ZUMBADOR entonces
                           inicio
                               oeste;
                               mientras frente-libre hacer avanza;
                               sur;
                               mientras frente-libre hacer avanza;
                               norte;
                               busca1;
                               repetir i veces coge-zumbador;
                               repetir i veces si junto-a-zumbador entonces coge-zumbador;
                               este;
                               si frente-libre entonces avanza;
                               norte;
                               repetir i veces
                                   inicio
                                       deja-zumbador;
                                       deja-zumbador;
                                       si frente-libre entonces avanza;
                                   fin;
                               oeste;
                               si frente-libre entonces avanza;
                               sur;
                               mientras frente-libre hacer avanza;
                               norte;
                               mientras junto-a-zumbador haCER COGE-ZUMBADOR;
                               MIENTRAS ALGUN-ZUMBADOR-EN-LA-MOCHILA HACER
                                   INICIO
                                       DEJA-ZUMBADOR;
                                       SI FRENTE-LIBRE ENTONCES AVANZA;
                                   FIN;
                               apagate;
                           fin;
                       si junto-a-zumbador entonces busca2(i);
                       si frente-bloqueado entonces
                           inicio
                               sur;
                               mientras frente-libre hacer avanza;
                               este;
                               si frente-libre entonces avanza;

                               norte;
                               busca2(i);
                           fin;
                   fin;
     fin;



  inicia-ejecucion
  oeste;
  mientras frente-libre hacer avanza;
  sur;
  mientras frente-libre hacer avanza;
   norte;
   busca2(0);
        apagate;
    termina-ejecucion
finalizar-programa

