iniciar-programa
define-nueva-instruccion g(n) como
inicio
     repetir n veces
     gira-izquierda;
fin;
define-nueva-instruccion iniciar(n) como
inicio
    si no-junto-a-zumbador entonces
    inicio
        si izquierda-bloqueada entonces
        inicio
        avanza;
        iniciar(sucede(n));

        fin
        sino
        inicio
             g(1);
             avanza;
             iniciar(sucede(n));
        fin;

    fin
    sino
    inicio
          avanza;
          g(3);
          avanza;
          repetir n veces
          deja-zumbador;
          g(2);
          repetir 3 veces
          avanza;
          repetir n veces
          deja-zumbador;
    fin;


fin;
define-nueva-instruccion div(n) como
inicio
     si junto-a-zumbador entonces
     inicio
          coge-zumbador;
          div(sucede(n));
     fin
     sino
     inicio

          avanza;
        mientras junto-a-zumbador hacer
        inicio
          repetir n veces
          coge-zumbador;
          g(2);
          avanza;
          avanza;
          deja-zumbador;
          g(2);
          mientras frente-libre hacer
          avanza;
        fin;
     fin;
fin;
define-nueva-instruccion resta(n) como
inicio
     si junto-a-zumbador entonces
     inicio
          coge-zumbador;
          resta(sucede(n));
     fin
     sino
     inicio
          repetir n veces
          deja-zumbador;
          avanza;
          si junto-a-zumbador entonces
          repetir n veces
          coge-zumbador;
     fin;
fin;
    inicia-ejecucion
    mientras no-orientado-al-este hacer
    g(1);
    avanza;
    g(1);
    avanza;
    g(3);
    deja-zumbador;
    avanza;
    iniciar(1);
    g(2);
    avanza;
    avanza;
    div(0);
    g(2);
    avanza;
    avanza;
    resta(0);
        apagate;
    termina-ejecucion
finalizar-programa
