iniciar-programa
define-nueva-instruccion regresa2 como
   inicio
      mientras no-orientado-al-oeste hacer gira-izquierda;
      mientras frente-libre hacer avanza;
      gira-izquierda;
      si frente-libre entonces avanza;
      gira-izquierda;
      mientras no-orientado-al-norte hacer gira-izquierda;


   fin;
 define-nueva-instruccion regresa como
   inicio
      mientras no-orientado-al-oeste hacer gira-izquierda;
      mientras frente-libre hacer avanza;
      repetir 3 veces gira-izquierda;
      si frente-libre entonces avanza;
      repetir 3 veces gira-izquierda;


   fin;
 define-nueva-instruccion cuenta(n) como
   inicio
      si junto-a-zumbador entonces
         inicio
            coge-zumbador;
            cuenta(sucede(n));

         fin;
         si no-orientado-al-norte entonces
           inicio
             regresa;
             repetir n veces
             si frente-libre entonces avanza;
              si algun-zumbador-en-la-mochila entonces deja-zumbador;
              regresa2;
           fin;

   fin;
   define-nueva-instruccion haz(n) como
           inicio
             mientras frente-libre hacer
                inicio
                   si junto-a-zumbador entonces
                      inicio
                        mientras junto-a-zumbador hacer coge-zumbador;
                        haz(sucede(n));
                     fin;
                   si frente-libre entonces avanza;
               fin;
             si junto-a-zumbador entonces
                inicio
                    mientras junto-a-zumbador hacer coge-zumbador;
                        haz(sucede(n));

                fin;
                regresa2;   
               repetir n veces deja-zumbador;
               apagate;

           fin;
    inicia-ejecucion
       mientras frente-libre hacer
         inicio
         mientras no-orientado-al-este hacer gira-izquierda;
           mientras no-junto-a-zumbador y frente-libre hacer avanza;
           si junto-a-zumbador entonces
             inicio
               coge-zumbador;
               cuenta(0);
             fin;

         fin;

        regresa2;
        si frente-libre entonces avanza;
        repetir 3 veces gira-izquierda;
        haz(0);
        apagate;
    termina-ejecucion
finalizar-programa
