iniciar-programa

    define-nueva-instruccion gira(g) como inicio
      repetir g veces
        gira-izquierda;
    fin;

    define-nueva-instruccion dobla(d) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        dobla(d);
        repetir d veces
          deja-zumbador;
      fin;
    fin;

    define-nueva-instruccion contar(c) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        contar(sucede(c));
      fin sino inicio
        avanza;
        repetir c veces inicio
          si junto-a-zumbador entonces
            coge-zumbador;
        fin;
        si junto-a-zumbador entonces inicio
          repetir c veces
            deja-zumbador;
          gira(2);
          repetir 2 veces
            avanza;
          dobla(c);
          gira(2);
          avanza;
          contar(sucede(c));
        fin;
      fin;
    fin;

    define-nueva-instruccion acomodar(a) como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        acomodar(sucede(a));
      fin sino inicio
        gira(2);
        avanza;
        repetir a veces
          deja-zumbador;
        gira(2);
        avanza;
        avanza;
        deja-zumbador;
        gira(2);
        avanza;
        gira(2);
        contar(sucede(a));
      fin;
    fin;

    inicia-ejecucion
        avanza;
        acomodar(1);
        apagate;
    termina-ejecucion
finalizar-programa
