iniciar-programa
define-nueva-instruccion g(n) como
inicio
  repetir n veces
  inicio
    gira-izquierda;
  fin;
fin;
define-nueva-instruccion andrea(n) como
inicio
  si junto-a-zumbador entonces
  inicio
    coge-zumbador;
    andrea(sucede(n));
  fin
  sino
  inicio
    mientras derecha-bloqueada hacer
      avanza;
    g(3);
    avanza;
    g(3);
    mientras frente-libre hacer
      avanza;
    g(2);
    repetir 8 veces
      avanza;
      repetir 2 veces
        deja-zumbador;
      g(2);
    avanza;
    repetir n veces
      deja-zumbador;
  fin;
fin;
define-nueva-instruccion c(n) como
inicio
  si frente-libre entonces
  inicio
    avanza;
    c(sucede(n));
  fin
  sino
  inicio
  g(2);
  mientras no-orientado-al-sur hacer
  inicio
    repetir n veces
      avanza;
    si junto-a-zumbador entonces
    inicio
      coge-zumbador;
      si junto-a-zumbador entonces
      inicio
        coge-zumbador;
        g(2);
        repetir n veces
          avanza;
        si frente-bloqueado entonces
        inicio
          g(2);
          avanza;
          g(2);
        fin;
        repetir 2 veces
          deja-zumbador;
          g(1);
       fin
       sino
       inicio
         g(2);
         repetir n veces
           avanza;
         deja-zumbador;
         g(2);
         avanza;
       fin;
    fin
    sino
    inicio
    g(2);
    repetir precede(n) veces
      avanza;
    g(2);
    fin;
  fin;
  fin;
fin;
      inicia-ejecucion
      mientras no-orientado-al-este hacer
        g(1);
      andrea(0);
      g(3);
      repetir 6 veces
      inicio
      si junto-a-zumbador entonces
        g(1);
        mientras no-orientado-al-norte hacer
        inicio
            si junto-a-zumbador entonces
            inicio
              coge-zumbador;
            fin
            sino
            inicio
              avanza;
              g(3);
            fin;
            si junto-a-zumbador entonces
            inicio
              coge-zumbador;
              avanza;
              deja-zumbador;
              g(2);
              avanza;
              g(2);
              si no-junto-a-zumbador entonces
              inicio
                avanza;
                g(3);
              fin;
            fin
            sino
            inicio
              deja-zumbador;
              avanza;
              g(3);
            fin;
          fin;
        fin;
        g(3);
        mientras no-junto-a-zumbador hacer
          avanza;
        g(2);
        c(0);
        apagate;
    termina-ejecucion
finalizar-programa
