iniciar-programa
define-nueva-instruccion final como
inicio
    si frente-libre entonces
    inicio
       avanza;
       final;
       deja-zumbador;
    fin;
fin;
define-nueva-instruccion coge1(n) como
inicio
   si junto-a-zumbador entonces
   inicio
      coge-zumbador;
      coge1(sucede(n));
   fin
   sino
   inicio
       repetir precede(n) veces
          avanza;
      repetir n veces
         deja-zumbador;
   fin;
fin;
define-nueva-instruccion coge(n) como
inicio
   si junto-a-zumbador entonces
   inicio
      coge-zumbador;
      coge(sucede(n));
   fin
   sino
   inicio
       repetir n veces
          avanza;
       si junto-a-zumbador entonces
       inicio
          mientras no-orientado-al-oeste hacer
             gira-izquierda;
          final;
          deja-zumbador;
          apagate;
       fin;
      repetir n veces
          deja-zumbador;
   fin;
fin;
    inicia-ejecucion
       mientras no orientado-al-este hacer
          gira-izquierda;
       coge1(0);
       mientras frente-libre o frente-bloqueado hacer
       inicio
           avanza;
           mientras no-junto-a-zumbador hacer
             avanza;
          gira-izquierda;
          gira-izquierda;
          coge(0);
          avanza;
          mientras no junto-a-zumbador hacer
             avanza;
          gira-izquierda;
          gira-izquierda;
          coge(0);
       fin;
    termina-ejecucion
finalizar-programa
