iniciar-programa
 define-nueva-instruccion regresa como
   inicio
     mientras no-orientado-al-oeste hacer
       gira-izquierda;
     mientras frente-libre hacer avanza;
     gira-izquierda;
     mientras frente-libre hacer avanza;
     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;
          mientras no-orientado-al-oeste hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        mientras no-orientado-al-norte hacer
         gira-izquierda;
       si frente-libre entonces
       avanza;
       mientras no-orientado-al-norte hacer
         gira-izquierda;
      fin;


    fin;
  define-nueva-instruccion recorre como
    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;
        si frente-bloqueado y izquierda-libre entonces
           inicio
              repetir 2 veces gira-izquierda;
              mientras frente-libre hacer avanza;
              repetir 3 veces gira-izquierda;
              si frente-libre entonces avanza;
              repetir 3 veces gira-izquierda;
          fin;
         si no(izquierda-bloqueada y frente-bloqueado) entonces
               recorre;


    fin;

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

        fin;  
        mientras no-orientado-al-oeste hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        mientras junto-a-zumbador hacer coge-zumbador;
        repetir n veces deja-zumbador;
        apagate;


   fin;

    inicia-ejecucion


        mientras no-orientado-al-norte hacer
         gira-izquierda;
       si frente-libre entonces
       avanza;
       repetir 3 veces gira-izquierda;
       recorre;
       regresa;
       haz(0);




        apagate;
    termina-ejecucion
finalizar-programa
