iniciar-programa
define-nueva-instruccion gira(n) como
inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion cambia3(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
cambia3(sucede(n));
sal-de-instruccion;
fin
sino
gira(2);
avanza;
mientras junto-a-zumbador hacer
avanza;
repetir n veces deja-zumbador;
gira(3);
sal-de-instruccion;
fin;
define-nueva-instruccion cambia2(n) como
inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
cambia2(sucede(n));
sal-de-instruccion;
fin
sino
gira(2);
avanza;
repetir n veces deja-zumbador;
mientras junto-a-zumbador hacer avanza;
gira(2);
avanza;
gira(2);
cambia3(0);
fin;
define-nueva-instruccion cambia(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
cambia(sucede(n));
sal-de-instruccion;
fin
sino
inicio
avanza;
mientras junto-a-zumbador hacer avanza;
repetir n veces deja-zumbador;
gira(2);
mientras junto-a-zumbador hacer avanza;
avanza;
cambia2(0);
fin;
fin;
define-nueva-instruccion cuenta1(n) como
inicio
    si junto-a-zumbador entonces
    inicio
    coge-zumbador;
    gira(3);
    avanza;
    si junto-a-zumbador entonces
    inicio
    coge-zumbador;
    fin
    sino
    inicio
    repetir n veces deja-zumbador;
    gira(2);
    avanza;
    repetir n veces deja-zumbador;
    deja-zumbador;
    gira(2);
    avanza;
    cambia(0);
    gira(3);
    avanza;
    gira(1);
    sal-de-instruccion;
    fin;
    gira(2);
    avanza;
    gira(3);
    cuenta1(sucede(n));
    fin
    sino
    inicio
    repetir n veces deja-zumbador;
    gira(3);
    avanza;
    repetir n veces deja-zumbador;
    gira(1);
    fin;

fin;

     define-nueva-instruccion ordena(n) como
     inicio
     repetir n veces
     inicio
     repetir n veces
     inicio
     gira(3);
     avanza;
     si junto-a-zumbador entonces
     inicio
     gira(2);
     avanza;
     gira(3);
     cuenta1(0);
     fin
     sino
     inicio
     gira(2);
     avanza;
     mientras junto-a-zumbador hacer avanza;
     gira(2);
     avanza;
     gira(2);
     gira(3);
     fin;
     fin;
     fin;
     apagate;
     fin;


    define-nueva-instruccion cuentalong(n) como
    inicio si junto-a-zumbador entonces
    inicio
    avanza;
    cuentalong(sucede(n));
    fin
    sino
    inicio
    gira(2);
    avanza;
    mientras junto-a-zumbador  hacer avanza;
    gira(2);
    avanza;
    gira(1);
    ordena(n);
    fin;
    fin;





    inicia-ejecucion
    mientras no-orientado-al-este hacer
    gira(3);
    avanza;
    avanza;

    cuentalong(0);
        apagate;
    termina-ejecucion
finalizar-programa
