iniciar-programa
define-nueva-instruccion g(n) como
inicio
repetir n veces
gira-izquierda;
fin;
  define-nueva-instruccion adelante como
  inicio
   si frente-libre entonces
   inicio
    avanza;
   fin
   sino
   inicio
     si izquierda-libre entonces
     inicio
     g(1);
     avanza;
     g(1);
     mientras frente-libre hacer
     avanza;
     g(2);
     fin
     sino
     inicio
        g(2);
        mientras frente-libre hacer
        avanza;
        gira-izquierda;
        mientras frente-libre hacer
        avanza;
     fin;
   fin;
  fin;
      define-nueva-instruccion cuenta(n) como
      inicio
         si junto-a-zumbador entonces
         inicio
          coge-zumbador;
          cuenta(sucede(n));
         fin
         sino
         inicio
         adelante;
          si orientado-al-sur entonces
         inicio
         repetir n veces
         deja-zumbador;
         apagate;
         fin;
         cuenta(n);
         fin;

      fin;
             define-nueva-instruccion limpia como
             inicio

                 si junto-a-zumbador entonces
                 inicio
                   mientras junto-a-zumbador hacer
                   coge-zumbador;
                   deja-zumbador;
                   adelante;
                 fin
                 sino
                 inicio
                 adelante;
                 fin;

             fin;
      define-nueva-instruccion esparse como
      inicio

            si junto-a-zumbador entonces
            inicio
              coge-zumbador;
              si junto-a-zumbador entonces
              inicio
              deja-zumbador;
              fin
              sino
              inicio
              deja-zumbador;
                repetir 4 veces
                inicio
                   gira-izquierda;
                   si frente-libre entonces
                   inicio
                     avanza;
                     si no-junto-a-zumbador entonces
                     inicio
                     deja-zumbador;
                     deja-zumbador;
                     fin;
                    g(2);
                    avanza;
                    g(2);
                   fin;
                fin;
              fin;
            fin;
            adelante;

      fin;
  define-nueva-instruccion kaka(n) como
  inicio
     si junto-a-zumbador entonces
     inicio
        coge-zumbador;
        kaka(sucede(n));
     fin
      sino
      inicio
        g(3);
      repetir n veces
      inicio
        mientras orientado-al-este hacer
        inicio
        esparse;
        fin;
          gira-izquierda;
          mientras orientado-al-este hacer
           limpia;
          gira-izquierda;
      fin;

      fin;
          cuenta(0);
     fin;

    inicia-ejecucion
      kaka(0);
        apagate;
    termina-ejecucion
finalizar-programa
