iniciar-programa
   define-nueva-instruccion regresa como inicio
      gira-izquierda;
      gira-izquierda;
   fin;
   define-nueva-instruccion derecha como inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
   fin;

   define-nueva-instruccion deposita como inicio
      gira-izquierda;
      mientras frente-libre hacer
         avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
   fin;
   define-nueva-instruccion checa como inicio
      mientras junto-a-zumbador hacer
         coge-zumbador;
      si orientado-al-norte entonces inicio
         repetir 1 veces
            deja-zumbador;

         si ningun-zumbador-en-la-mochila entonces inicio
            coge-zumbador;
            deposita;
            regresa;
            deja-zumbador;
         fin
         sino inicio
            repetir 1 veces
               deja-zumbador;

            si ningun-zumbador-en-la-mochila entonces inicio
               coge-zumbador;
               coge-zumbador;
               deposita;
               gira-izquierda;
               avanza;
               deja-zumbador;
               deja-zumbador;
               regresa;
               avanza;
               derecha;
            fin
            sino inicio
               repetir 1 veces
                  deja-zumbador;

               si ningun-zumbador-en-la-mochila entonces inicio
                  coge-zumbador;
                  coge-zumbador;
                  coge-zumbador;
                  deposita;
                  gira-izquierda;
                  deja-zumbador;
                  avanza;
                  deja-zumbador;
                  deja-zumbador;
                  regresa;
                  avanza;
                  derecha;
            fin

            fin;


         fin;
      fin;
   fin;
    inicia-ejecucion
    si junto-a-zumbador entonces inicio
       mientras junto-a-zumbador hacer
          coge-zumbador;
       avanza;
       derecha;
       avanza;
       avanza;
       mientras algun-zumbador-en-la-mochila hacer
          deja-zumbador;
       regresa;
       avanza;
       avanza;
       gira-izquierda;
       avanza;
       regresa;
    fin;
    derecha;
    avanza;
    gira-izquierda;
    si junto-a-zumbador entonces inicio
       mientras junto-a-zumbador hacer
          coge-zumbador;
       avanza;
       mientras algun-zumbador-en-la-mochila hacer
          deja-zumbador;
       regresa;
       avanza;
       derecha;
       avanza;
       derecha;
     fin
     sino inicio
        gira-izquierda;
        avanza;
        derecha;
     fin;
     derecha;
      mientras frente-libre hacer inicio
       si junto-a-zumbador entonces inicio
         gira-izquierda;
         checa;
         derecha;
         avanza;
         avanza;
       fin
       sino avanza;


    fin;
    si junto-a-zumbador entonces inicio
       gira-izquierda;
       checa;
    fin
    sino inicio
       regresa;
       mientras frente-libre hacer
          avanza;
       derecha;
    fin;
    mientras frente-libre y no-orientado-al-este hacer inicio
       avanza;
       si frente-libre y no-junto-a-zumbador entonces inicio
          avanza;
       fin;
       si junto-a-zumbador entonces inicio
          checa;
       fin;
       si frente-bloqueado entonces inicio
          regresa;
          mientras frente-libre hacer
             avanza;
          gira-izquierda;
          si frente-libre entonces inicio
             avanza;
             gira-izquierda;
          fin;
       fin;
    fin;
    regresa;
    mientras frente-libre hacer
       avanza;
    derecha;
    mientras junto-a-zumbador hacer
       coge-zumbador;
    mientras algun-zumbador-en-la-mochila hacer inicio
       deja-zumbador;
       si frente-libre entonces
         avanza;
    fin;
    regresa;
    mientras frente-libre hacer
       avanza;
    gira-izquierda;
    avanza;
    gira-izquierda;
    mientras junto-a-zumbador hacer
       coge-zumbador;
    mientras algun-zumbador-en-la-mochila hacer inicio
       deja-zumbador;
       deja-zumbador;
       si frente-libre entonces
          avanza;
    fin;




        apagate;
    termina-ejecucion
finalizar-programa
