iniciar-programa
define-nueva-instruccion gira(n) como inicio
   repetir n veces gira-izquierda;
   fin;
define-nueva-instruccion faltantes(n) como inicio
   si junto-a-zumbador entonces inicio
      coge-zumbador;
      faltantes(n);
      deja-zumbador;
      fin;
   si no-junto-a-zumbador entonces inicio
      repetir n veces deja-zumbador;
      avanza;
      fin;
   fin;
define-nueva-instruccion compara(n) como inicio
   si junto-a-zumbador entonces inicio
      avanza;
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         gira(2);
         avanza;
         gira(2);
         coge-zumbador;
         compara(sucede(n));
         fin
      sino inicio
         repetir n veces deja-zumbador;
         gira(2);
         avanza;
         gira(2);
         faltantes(n);
         fin;
      fin
   sino inicio
      repetir n veces deja-zumbador;
      avanza;
      repetir n veces deja-zumbador;
      fin;
   fin;
define-nueva-instruccion cuenta(n) como inicio
   si junto-a-zumbador entonces inicio
      coge-zumbador;
      cuenta(sucede(n));
      fin;
   repetir 2 veces avanza;
   si si-es-cero(n) entonces apagate;
   repetir precede(n) veces compara(0);
   gira(2);
   mientras frente-libre hacer avanza;
   gira(2);
   fin;
    inicia-ejecucion
      mientras no-orientado-al-este hacer gira-izquierda;
      cuenta(0);
      apagate;
    termina-ejecucion
finalizar-programa
