iniciar-programa

       define-nueva-instruccion colocate como inicio
            mientras no-orientado-al-oeste hacer gira-izquierda;
            mientras frente-libre hacer avanza;
            mientras no-orientado-al-sur hacer gira-izquierda;
            mientras frente-libre hacer avanza;
            mientras no-orientado-al-este hacer  gira-izquierda;
           si algun-zumbador-en-la-mochila entonces inicio
              mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
              fin;
      fin;

      define-nueva-instruccion  tododerecha como inicio
            avanza;
            mientras no-junto-a-zumbador y frente-libre hacer avanza;
            si frente-bloqueado entonces inicio
                 gira-izquierda;
                 avanza;
                 repetir 3 veces gira-izquierda;
             fin;    
            avanza;
            gira-izquierda;
      fin;

        define-nueva-instruccion  cortaotro(n) como inicio
           si si-es-cero(n) entonces inicio
              apagate;
           fin;
            si no-junto-a-zumbador entonces inicio
               avanza;
               cortaotro(precede(n));
               fin;
           si junto-a-zumbador entonces inicio
                 repetir 3 veces gira-izquierda;
                 mientras junto-a-zumbador hacer inicio
                  coge-zumbador;
                  si frente-libre entonces inicio
                    avanza;
                    fin
                   sino inicio
                     repetir 3 veces gira-izquierda;
                     avanza;
                       si junto-a-zumbador entonces inicio
                          mientras junto-a-zumbador hacer inicio
                          coge-zumbador;
                          avanza;
                          fin;
                          colocate;
                         fin
                          sino inicio
                            colocate;
                          fin;
                   fin;
                 fin;
                 repetir 2 veces gira-izquierDA;
                 avanzA;
                 repetir 3 veces gira-izquierda;
                 avanza;
                      si junto-a-zumbador entonces inicio
                       mientras junto-a-zumbador hacer inicio
                         coge-zumbador;
                         si frente-libre entonces avanza;
                         fin;
                        colocate;
                      fin
                     sino inicio
                        colocate;
                      fin;
                  tododerecha;
                  cortaotro(50);
            fin;
       fin;




      define-nueva-instruccion izquierda como inicio
            avanza;
            mientras no-junto-a-zumbador hacer avanza;
            repetir 2 veces gira-izquierda;
            avanza;
            repetir 3 veces gira-izquierda;
      fin;

      define-nueva-instruccion corta(n) como inicio
          si si-es-cero(n) entonces inicio
             colocate;
           tododerecha;
             cortaotro(50);
             fin;
           si no-junto-a-zumbador entonces inicio
            avanza;
            corta(precede(n));
            fin;
            si junto-a-zumbador entonces inicio
              gira-izquierda;
              mientras junto-a-zumbador hacer inicio
               coge-zumbador;
               si frente-libre entonces inicio
                 avanza;
                 fin
                sino inicio
                  repetir 3 veces gira-izquierda;
                  avanza;
                    si junto-a-zumbador entonces inicio
                       mientras junto-a-zumbador hacer inicio
                       coge-zumbador;
                       avanza;
                       fin;
                       colocate;
                       izquierda;
                       corta(50)
                      fin
                       sino inicio
                         colocate;
                         izquierda;
                         corta(50);
                       fin;
                fin;
              fin;
               repetir 2 veces gira-izquierDA;
              avanzA;
              gira-izquierda;
              avanza;
                   si junto-a-zumbador entonces inicio
                    mientras junto-a-zumbador hacer inicio
                      coge-zumbador;
                      si frente-libre entonces avanza;
                      fin;
                     colocate;
                   fin
                  sino inicio
                     colocate;
                   fin;
             fin;
             izquierda;
             corta(50);
     fin;
    inicia-ejecucion
        colocate;
        izquierda;
        corta(51);
        apagate;
    termina-ejecucion
finalizar-programa
