iniciar-programa
 define-nueva-instruccion inv como
  inicio
   gira-izquierda;
   gira-izquierda;
  fin;
 define-nueva-instruccion mov como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     mov;
     deja-zumbador;
    fin
   sino
    inicio
     avanza;
    fin;
  fin;
 define-nueva-instruccion sum(n) como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     sum(sucede(n));
    fin
   sino
    inicio
     avanza;
     gira-izquierda;
     repetir 11 veces
      avanza;
     repetir 3 veces
      gira-izquierda;
     repetir 11 veces
      inicio
       mov;
       mov;
       inv;
       avanza;
       avanza;
       gira-izquierda;
       avanza;
       gira-izquierda;
      fin;
     avanza;
     avanza;
     gira-izquierda;
     repetir 11 veces
      avanza;
     gira-izquierda;
     repetir 11 veces
      inicio
       repetir precede(n) veces
        inicio
         si junto-a-zumbador entonces
          inicio
           coge-zumbador;
           avanza;
           deja-zumbador;
           inv;
           avanza;
           inv;
          fin;
        fin;
       si junto-a-zumbador entonces
        inicio
         coge-zumbador;
         gira-izquierda;
         avanza;
         repetir 3 veces
          gira-izquierda;
         deja-zumbador;
        fin
       sino
        inicio
         avanza;
         inv;
         mov;
         repetir 3 veces
          gira-izquierda;
         avanza;
         repetir 3 veces
          gira-izquierda;
        fin;
      fin;
    fin;
  fin;
 define-nueva-instruccion sk como
  inicio
   repetir 3 veces
    avanza;
   inv;
   sum(0);
  fin;
    inicia-ejecucion
     sk;
        apagate;
    termina-ejecucion
finalizar-programa
