iniciar-programa
   define-nueva-instruccion derecha como inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
   fin;
   define-nueva-instruccion regresa como inicio
      gira-izquierda;
      gira-izquierda;
   fin;
   define-nueva-instruccion deposita como inicio
      si frente-libre entonces  inicio
         avanza;

         deposita;
      fin;
      mientras algun-zumbador-en-la-mochila hacer
         deja-zumbador;
      si orientado-al-oeste entonces
         regresa;
      avanza;
   fin;

   define-nueva-instruccion cuenta(x) como inicio
      si junto-a-zumbador entonces inicio
         avanza;
         cuenta(sucede(x));
         si orientado-al-norte y no-junto-a-zumbador y ningun-zumbador-en-la-mochila entonces inicio
            regresa;
            repetir x veces
               avanza;
            regresa;
            mientras junto-a-zumbador hacer inicio
               repetir x veces inicio
                  coge-zumbador;
                  avanza;
               fin;
               regresa;
               repetir x veces
                  avanza;
               gira-izquierda;
               avanza;
               gira-izquierda;
            fin;
            si algun-zumbador-en-la-mochila entonces inicio
               regresa;
               avanza;
               derecha;
               avanza;
               deposita;
               gira-izquierda;
               avanza;
               mientras derecha-libre hacer inicio
                  repetir x veces inicio
                     si junto-a-zumbador entonces
                        coge-zumbador;
                     avanza;
                  fin;
                  regresa;
                  repetir x veces
                     avanza;
                  derecha;
                  si frente-libre entonces inicio
                     avanza;
                     derecha;
                  fin
                  sino gira-izquierda;
               fin;
            fin;
         fin;
         si orientado-al-sur y derecha-bloqueada y algun-zumbador-en-la-mochila entonces inicio
            avanza;
            gira-izquierda;
            mientras algun-zumbador-en-la-mochila hacer inicio
               coge-zumbador;
               avanza;
               deja-zumbador;
               avanza;
               deja-zumbador;
               regresa;
               avanza;
               avanza;
               regresa;
            fin;
            avanza;
            avanza;
            mientras junto-a-zumbador hacer
               coge-zumbador;

         fin;
      fin;
   fin;
    inicia-ejecucion
       avanza;
       cuenta(1);
        apagate;
    termina-ejecucion
finalizar-programa
