iniciar-programa
   define-nueva-instruccion media-Vuelta como inicio
        gira-izquierda;
        gira-izquierda;
    fin;

    define-nueva-instruccion gira-Derecha como inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;

    define-nueva-instruccion  deja como inicio
      gira-derecha;
      avanza;
      deja-zumbador;
      media-vuelta;
      avanza;
      gira-derecha;
      fin;

       define-nueva-instruccion  zumbadores(n) como inicio
         si junto-a-zumbador entonces inicio
         repetir n veces
           coge-zumbador;
           si junto-a-zumbador entonces inicio
             deja;
             fin
             sino si no junto-a-zumbador entonces inicio
              repetir n veces deja-zumbador;
              sal-de-instruccion;
              fin;
           zumbadores(sucede(sucede(n)));
            fin;
          fin;

       define-nueva-instruccion  zumbadores2(n) como inicio
         si junto-a-zumbador entonces inicio
          zumbadores(1);

          fin;
          fin;
        define-nueva-instruccion  recoge-lado como inicio
            gira-derecha;
            avanza;
            mientras junto-a-zumbador hacer inicio
             coge-zumbador;
            fin;
             media-vuelta;
             avanza;
            media-vuelta;
            fin;
       define-nueva-instruccion base como inicio
            si junto-a-zumbador entonces inicio
             coge-zumbador;
             base;
             deja-zumbador;
             avanza;
             fin;
             fin;

        define-nueva-instruccion linea como inicio
           avanza;
          mientras frente-libre y no junto-a-zumbador hacer inicio
              si algun-zumbador-en-la-mochila entonces
               deja-zumbador;

             avanza;
             fin;
           si junto-a-zumbador entonces inicio
            media-vuelta;
            sal-de-instruccion;
            fin;
            fin;

       define-nueva-instruccion derecha como inicio
        mientras frente-libre y orientado-al-este y  junto-a-zumbador hacer inicio
           avanza;
           fin;
         si no junto-a-zumbador entonces inicio
           media-vuelta;
            avanza;
            avanza;
            gira-derecha;
            avanza;
            si algun-zumbador-en-la-mochila entonces inicio
            deja-zumbador;
             fin
             sino inicio
              apagate;
              fin;
            fin;
         gira-izquierda;

         fin;


      define-nueva-instruccion izquierda como inicio
        mientras frente-libre y orientado-al-este y no junto-a-zumbador hacer inicio
           avanza;
           fin;
         si junto-a-zumbador entonces inicio
            avanza;
            gira-izquierda;
            avanza;
deja-zumbador;
            fin;
            si algun-zumbador-en-la-mochila entonces inicio
        media-vuelta;
        avanza;
        gira-izquierda;
        fin;
         fin;

      define-nueva-instruccion piramide como inicio
         si algun-zumbador-en-la-mochila entonces
         izquierda;
         si algun-zumbador-en-la-mochila entonces
         derecha;
         si algun-zumbador-en-la-mochila entonces
         linea;
         si algun-zumbador-en-la-mochila entonces
         piramide;
       fin;

       define-nueva-instruccion recoger como inicio
         mientras frente-libre y no junto-a-zumbador hacer inicio
           avanza;
           fin;
         si junto-a-zumbador entonces inicio
           coge-zumbador;
           recoger;
           fin;
         si frente-bloqueado y no junto-a-zumbador y orientado-al-norte entonces inicio
           media-vuelta;
           recoger;
           fin;
         si frente-bloqueado y orientado-al-sur entonces inicio
          gira-izquierda;
           si frente-libre entonces inicio
             avanza;
             fin
             sino si frente-bloqueado entonces inicio
              media-vuelta;
              mientras frente-libre hacer inicio
                avanza;
                fin;
               mientras algun-zumbador-en-la-mochila hacer inicio
                deja-zumbador;
                fin;
                sal-de-instruccion;
                fin;

          gira-izquierda;
          recoger;
          fin;
          fin;

    inicia-ejecucion
     mientras no orientado-al-norte hacer inicio
      gira-izquierda;
      fin;
     recoger;
     gira-derecha;
    zumbadores2(0);
    recoge-lado;
    base;
      media-vuelta;
       mientras frente-libre hacer inicio
       avanza;
       fin;
      media-vuelta;
        piramide;


        apagate;
    termina-ejecucion
finalizar-programa
