iniciar-programa
      define-nueva-instruccion camina como
          inicio
                mientras junto-a-zumbador hacer
                inicio
                     coge-zumbador;
                fin;

                mientras frente-libre hacer
                inicio
                    avanza;

                mientras junto-a-zumbador hacer
                inicio
                    coge-zumbador;
                fin;
                fin;
          fin;

    define-nueva-instruccion gira-continua como
            inicio
                mientras no-orientado-al-este hacer
                inicio
                    camina;
                    si derecha-libre entonces
                    inicio
                       gira-izquierda;
                       gira-izquierda;
                       gira-izquierda;
                       avanza;
                       gira-izquierda;
                       gira-izquierda;
                       gira-izquierda;
                       camina;

                       si izquierda-libre entonces
                       inicio
                          gira-izquierda;
                          avanza;
                          gira-izquierda;
                       fin
                           sino inicio
                              gira-izquierda;
                           fin;
                  fin
                      sino inicio
                         gira-izquierda;
                         gira-izquierda;
                         gira-izquierda;
                              fin;
               fin;
            fin;

            define-nueva-instruccion regresa como
                inicio
                   gira-izquierda;
                   gira-izquierda;
               mientras frente-libre hacer
               inicio
                  avanza;
               fin;

               gira-izquierda;

               mientras frente-libre hacer
               inicio
                  avanza;
               fin;
                fin;

        define-nueva-instruccion dejarZumbadores como
            inicio
                   mientras algun-zumbador-en-la-mochila hacer
                       inicio
                              deja-zumbador;
                       fin;
            fin;

        inicia-ejecucion
                    gira-continua;
                    regresa;
                    dejarZumbadores;
        apagate;
    termina-ejecucion
finalizar-programa
