iniciar-programa
Define-nueva-instruccion norte como inicio
      mientras no-orientado-al-norte hacer inicio
         gira-izquierda;
      fin;
   fin;

   define-nueva-instruccion sur como inicio
      mientras no-orientado-al-sur hacer inicio
         gira-izquierda;
      fin;
   fin;

      define-nueva-instruccion oeste como inicio
      mientras no-orientado-al-oeste hacer inicio
         gira-izquierda;
      fin;
   fin;

   define-nueva-instruccion este como inicio
      mientras no-orientado-al-este hacer inicio
         gira-izquierda;
      fin;
   fin;


   define-nueva-instruccion ir11 como inicio
        oeste;

    mientras frente-libre hacer inicio
        avanza;
    fin;

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

define-nueva-instruccion ir22 como inicio
        oeste;

    mientras frente-libre hacer inicio
        avanza;
    fin;

    sur;
    mientras frente-libre hacer inicio
        avanza;
        fin;
        este;
        avanza;
        norte;
    fin;






    define-nueva-instruccion juntar como inicio

     avanza;
    mientras  frente-libre   y no-junto-a-zumbador   hacer inicio
    AVANZA;


    si frente-bloqueado  y orientado-al-norte  entonces inicio
        SI DERECHA-LIBRE ENTONCES INICIO

        este;
    si no-junto-a-zumbador entonces inicio

        si frente-libre entonces inicio
            AVANZA;
    si no junto-a-zumbador entonces inicio
        SUR;
        juntar;
    FIN;
    fin;
    fin;
   FIN;
   FIN;


   si frente-bloqueado  y orientado-al-sur    entonces inicio




       este;




           si frente-libre   entonces inicio
               AVANZA;
                   si no junto-a-zumbador entonces inicio
                       norte;

                       juntar;

                       fin;
                       fin;
                       fin;



    fin;
    si junto-a-zumbador entonces inicio
    coge-zumbador;
    fin;
    si no-junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
    ir11;

        deja-zumbador;
      norte;
    juntar;

    fin;
 si junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
    coge-zumbador;
    fin;

    si junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
      coge-zumbador;

        ir11;
       deja-zumbador;
      ir22;  deja-zumbador; deja-zumbador;
      ir11;
      norte;
      juntar;
     fin;

   si no-junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
       ir22;
      si algun-zumbador-en-la-mochila entonces inicio deja-zumbador; deja-zumbador;
       ir11;
       norte;
       juntar;
    fin;
      si no junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio

     ir22;
     SI ALGUN-ZUMBADOR-EN-LA-MOCHILA ENTONCES INICIO deja-zumbador;  FIN; SI ALGUN-ZUMBADOR-EN-LA-MOCHILA ENTONCES INICIO deja-zumbador;

     norte;
     juntar;

      si ningun-zumbador-en-la-mochila entonces inicio
      sal-de-instruccion;
      fin;

    fin;
   FIN;
   FIN;
   FIN;

   define-nueva-instruccion despejar como inicio
       si junto-a-zumbador entonces inicio
       coge-zumbador;
       despejar;

       si no junto-a-zumbador entonces inicio
            norte;
        avanza;
        fin;

       mientras frente-libre y junto-a-zumbador hacer inicio
       avanza;
        fin;
        mientras algun-zumbador-en-la-mochila hacer  inicio
        deja-zumbador;
        fin;
        fin;

  fin;
 define-nueva-instruccion recoge1(N) como inicio

     si junto-a-zumbador entonces inicio
         coge-zumbador;
        recoge1(sucede(N));
      fin;
     repetir sucede (N) veces inicio
     si algun-zumbador-en-la-mochila entonces inicio
     deja-zumbador;
     si frente-libre entonces inicio
     avanza;
     fin;
    fin;

  FIN;
  fin;
     define-nueva-instruccion recoge2(M)   como inicio
   si junto-a-zumbador entonces inicio
         coge-zumbador;
         coge-zumbador;
         recoge2(sucede(M));
     fin;
      repetir sucede (M) veces inicio
      si algun-zumbador-en-la-mochila entonces inicio
          deja-zumbador;
          deja-zumbador;
           si frente-libre entonces inicio
     avanza;
     fin;

         fin;

      fin;
  fin;

  define-nueva-instruccion por como inicio

     mientras frente-libre y no-junto-a-zumbador y orientado-al-este  hacer inicio
     avanza;
     fin;

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

     norte;
     si frente-libre entonces inicio
     avanza;
     fin;

     mientras algun-zumbador-en-la-mochila hacer inicio
     deja-zumbador;
     fin;

     si junto-a-zumbador entonces inicio
     ir11;
     norte;
     juntar;
     fin;
    fin;



    inicia-ejecucion
    ir11;
    norte;
    despejar;
     ir22;
     norte;
     despejar;
     ir11;
     norte;
     juntar;
     ir11;
este;
     avanza;

     avanza;
     por;
     ir11;


     norte;
     juntar;
     IR11;

     norte;


     norte;
     recoge1(0);

     ir22;

     norte;
     recoge2(0);
     ir11;


       apagate;
    termina-ejecucion
finalizar-programa
