iniciar-programa
    define-nueva-instruccion gira-derecha como
       inicio
         gira-izquierda;
         gira-izquierda;
         gira-izquierda;
       fin;
     define-nueva-instruccion recolecta como
        inicio
          mientras frente-libre y junto-a-zumbador hacer
             inicio
               coge-zumbador;
               avanza;
             fin;
           fin;
      define-nueva-instruccion vuelta como
           inicio
             gira-izquierda;
             gira-izquierda;
           fin;
      define-nueva-instruccion coloca como
           inicio
            mientras frente-libre hacer
                inicio
                  deja-zumbador;
                  avanza;
                fin;
                fin;
       define-nueva-instruccion colocate como
           inicio
             mientras no-orientado-al-norte hacer
                 inicio
                   gira-izquierda;
                 fin;
               fin;
          inicia-ejecucion
           colocate;
           mientras frente-libre y junto-a-zumbador y no-orientado-al-este hacer
              inicio
                recolecta;
                  mientras no-junto-a-zumbador hacer
                    inicio
                      vuelta;
                     mientras frente-libre hacer
                         inicio
                           avanza;
                         fin;
                             gira-izquierda;
                             si frente-libre entonces
                               inicio
                                 avanza;
                                 gira-izquierda;
                               fin
                             sino
                               inicio
                                 vuelta;
                                 coloca;
                                 deja-zumbador;
                                  vuelta;
                            fin;
                          fin;
                      fin;
               mientras frente-libre y no-junto-a-zumbador hacer
              inicio
                gira-derecha;
                avanza;
                gira-izquierda;
              fin;
                mientras frente-libre y no-junto-a-zumbador hacer
                    inicio
                       avanza;
                    fin;
                 mientras algun-zumbador-en-la-mochila hacer
                     inicio
                        mientras frente-libre hacer
                             inicio
                                avanza;
                             fin;
                           gira-izquierda;
                           avanza;
                           gira-izquierda;
                           coloca;
                           deja-zumbador;
                           vuelta;
                       fin;
                      mientras frente-libre y junto-a-zumbador y no-orientado-al-este hacer
              inicio
                recolecta;
                  mientras no-junto-a-zumbador hacer
                    inicio
                      vuelta;
                     mientras frente-libre hacer
                         inicio
                           avanza;
                         fin;
                             gira-izquierda;
                             si frente-libre entonces
                               inicio
                                 avanza;
                                 gira-izquierda;
                               fin
                             sino
                               inicio
                                mientras algun-zumbador-en-la-mochila hacer
                                  inicio
                                vuelta;
                                 coloca;
                                 deja-zumbador;
                                  vuelta;
                                      mientras frente-libre hacer
                                        inicio
                                          avanza;
                                        fin;
                                     gira-izquierda;
                                     avanza;
                                     gira-izquierda;
                                     coloca;
                                     deja-zumbador;
                                   fin;    
                                fin;
                          fin;

                          mientras no-junto-a-zumbador hacer
                    inicio
                      vuelta;
                     mientras frente-libre hacer
                         inicio
                           avanza;
                         fin;
                             gira-izquierda;
                       fin;
                    fin;
      apagate;
    termina-ejecucion
finalizar-programa
