iniciar-programa
define-nueva-instruccion gira(n) como inicio
  repetir n veces gira-izquierda;
fin;
define-nueva-instruccion zum(n) como inicio
  si junto-a-zumbador entonces inicio
    coge-zumbador;
    zum(n);
    deja-zumbador;
  fin
  sino inicio
    gira(2);
    repetir n veces avanza;
  fin;
fin;
define-nueva-instruccion cuenta(n) como inicio
  si junto-a-zumbador entonces inicio
    coge-zumbador;
    cuenta(sucede(n));
  fin
  sino inicio
    mientras frente-libre hacer inicio
      repetir n veces avanza;
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        si junto-a-zumbador entonces inicio
          coge-zumbador;
          si junto-a-zumbador entonces inicio
            mientras junto-a-zumbador hacer coge-zumbador;
            gira(2);
            repetir n veces avanza;
            zum(n);
            deja-zumbador;
          fin
          sino inicio
            gira(2);
            repetir n veces avanza;
            zum(n);
            deja-zumbador;
            gira(3);
          fin;
        fin
        sino inicio
          gira(2);
          repetir n veces avanza;
          zum(n);
          deja-zumbador;
          gira(1);
        fin;
      fin
      sino inicio
        gira(2);
        repetir n veces avanza;
        zum(n);
        deja-zumbador;
        sal-de-instruccion;
      fin;
    fin;
  fin;
fin;
    inicia-ejecucion
      cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
