
iniciar-programa
  define-nueva-instruccion come(n) como
   inicio
       si junto-a-zumbador entonces
       inicio
          coge-zumbador;
          come(sucede(n));
       fin
       sino
       inicio
          repetir n veces
            avanza;
          repetir n veces
             deja-zumbador;
       fin;
   fin;
   define-nueva-instruccion abajo como
   inicio
       repetir 2 veces
       inicio
          gira-izquierda;
          mientras frente-libre hacer
              avanza;
       fin;
       deja-zumbador;
   fin;
   define-nueva-instruccion corre como
   inicio
       mientras frente-libre o frente-bloqueado hacer
       inicio
          mientras no junto-a-zumbador hacer
             avanza;
          come(0);
          gira-izquierda;
          gira-izquierda;
          mientras frente-libre hacer
             avanza;
          gira-izquierda;
          avanza;
          gira-izquierda;
          mientras no junto-a-zumbador hacer
             avanza;
          come(0);
          gira-izquierda;
          avanza;
          si junto-a-zumbador entonces
          inicio
             abajo;
             apagate;
          fin
          sino
          inicio
             abajo;
             gira-izquierda;
             gira-izquierda;
             repetir 4 veces
                avanza;
             repetir 3 veces
                gira-izquierda;
          fin;
       fin;
   fin;

   define-nueva-instruccion pont como
   inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         ponT;
         deja-zumbador;
      fin
      sino
      inicio
         avanza;
         avanza;
         si junto-a-zumbador entonces
            apagate;
         repetir 3 veces
            gira-izquierda;
         mientras no-junto-a-zumbador hacer
            avanza;
         coge-zumbador;
      fin;
   fin;
   define-nueva-instruccion ponC como
   inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         ponC;
         deja-zumbador;
      fin
      sino
         repetir 2 veces
            avanza;
    fin;
    inicia-ejecucion
       avanza;
       ponT;
       gira-izquierda;
       gira-izquierda;
       mientras frente-libre hacer
          avanza;
       gira-izquierda;
       avanza;
       repetir 2 veces
          gira-izquierda;
       ponC;
       repetir 3 veces
          gira-izquierda;
       corre;
       apagate;
    termina-ejecucion
finalizar-programa
