iniciar-programa
define-nueva-instruccion gira(n) como inicio
   repetir n veces
      gira-izquierda;
fin;

define-nueva-instruccion coge (n) como inicio
   si junto-a-zumbador y no si-es-cero(n) entonces inicio
      coge-zumbador;
      coge (precede(n));
   fin
   sino inicio
      si junto-a-zumbador entonces inicio
         gira(2);
         avanza;
         apagate;
      fin
      sino inicio
         gira(2);
         mientras frente-libre hacer
            avanza;
         gira(1);
         mientras frente-libre hacer
            avanza;
            gira(1);
            mientras no-junto-a-zumbador hacer
               avanza;
            gira(2);
            avanza;
            gira(3);
            repetir n veces
               deja-zumbador;
               avanza;
            apagate;
      fin;
   fin;
fin;
define-nueva-instruccion vitaminas(n) como inicio
   si junto-a-zumbador entonces inicio
      coge-zumbador;
      vitaminas(sucede(n));
   fin
   sino inicio
      si frente-libre y derecha-bloqueada y no si-es-cero(n) entonces inicio
         mientras frente-libre hacer
            avanza;
         gira(1);
         si junto-a-zumbador entonces inicio
            coge-zumbador;
         fin
         sino inicio
            mientras no-junto-a-zumbador hacer
               avanza;
            coge-zumbador;
         fin;
         gira(2);
         mientras frente-libre hacer
            avanza;
         gira(3);
         avanza;
         mientras junto-a-zumbador hacer
            avanza;
         gira(2);
         deja-zumbador;
      fin;
      si frente-libre entonces inicio
         avanza;
         mientras no-orientado-al-norte hacer
            gira(1);
         mientras junto-a-zumbador hacer
            avanza;
         gira(2);
         avanza;
         gira(1);
         vitaminas (n);
      fin
      sino inicio
         gira(1);
         avanza;
         gira(3);
         avanza;
         mientras algun-zumbador-en-la-mochila hacer
           deja-zumbador;
         repetir n veces
            coge-zumbador;
         coge(n);
      fin;
   fin;
fin;
    inicia-ejecucion
       vitaminas (0);
        apagate;
    termina-ejecucion
finalizar-programa