iniciar-programa
define-nueva-instruccion gira(n) como
inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion mayor(n) como
inicio
    si orientado-al-norte o orientado-al-este entonces
    repetir n veces si junto-a-zumbador   entonces
    coge-zumbador;
    si orientado-al-norte o orientado-al-este entonces
     gira(2);
    si junto-a-zumbador entonces
    inicio
        coge-zumbador;
        mayor(sucede(n));
    fin
    sino
    inicio
     gira(2);
     avanza;
     si junto-a-zumbador entonces
     inicio
     mayor(n);
     fin
     sino
     inicio
     gira(2);
     mientras frente-libre hacer avanza;
     gira(2);
     avanza;
     si orientado-al-este entonces
     inicio
     gira(3);
     avanza;
     gira(3);
     avanza;
     mientras junto-a-zumbador hacer coge-zumbador;
     repetir n veces deja-zumbador;
     sal-de-instruccion;
     fin;
     repetir n veces deja-zumbador;
     sal-de-instruccion;
     fin;
     fin;

fin;
define-nueva-instruccion quita(n) como
inicio
    repetir precede(n) veces
    inicio
        mientras junto-a-zumbador hacer
        inicio
            si junto-a-zumbador entonces
            inicio
            coge-zumbador;
            si no-junto-a-zumbador entonces
                inicio
                deja-zumbador;
                avanza;
                fin
              sino
              inicio
              repetir 2 veces deja-zumbador;
              avanza;
              fin;
            fin;
           fin;
           gira(2);
           mientras frente-libre hacer avanza;
           gira(2);


    fin;
  mayor(n);
  gira(2);
  avanza;
  repetir n veces deja-zumbador;
  gira(1);
fin;
define-nueva-instruccion menor(n) como
inicio
    mientras junto-a-zumbador hacer
    inicio
    coge-zumbador;
    si no-junto-a-zumbador entonces
    inicio
        deja-zumbador;
        gira(2);
        mientras frente-libre hacer
        inicio
        avanza;
        deja-zumbador;
        fin;
        gira(2);
            quita(sucede(n));


        avanza;
        gira(1);
        si junto-a-zumbador entonces
        menor(0);
        sal-de-instruccion;
    fin;
    avanza;
    fin;
    gira(2);
    mientras frente-libre hacer avanza;
    gira(2);
    menor(sucede(n));
fin;
define-nueva-instruccion final(n) como
inicio
    mientras junto-a-zumbador hacer

    mientras junto-a-zumbador hacer
    inicio
        coge-zumbador;
        si no-junto-a-zumbador entonces
        inicio
            gira(2);
            mientras frente-libre hacer avanza;
            gira(2);
            avanza;
            mientras junto-a-zumbador hacer coge-zumbador;
            repetir sucede(n) veces deja-zumbador;
            gira(2);
            avanza;
            gira(3);
            avanza;
            gira(3);
            mayor(0);
            apagate;
        fin
        sino avanza;
    fin;
    gira(2);
    mientras frente-libre hacer avanza;
    gira(2);
    final(sucede(n));

    fin;





    inicia-ejecucion
    menor(0);
    gira(1);
    mientras frente-libre hacer avanza;
    gira(2);
    final(0);
        apagate;
    termina-ejecucion
finalizar-programa
