iniciar-programa
define-nueva-instruccion gira(n) como
inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion acomoda como
inicio
gira(1);
avanza;
gira(1);
avanza;
avanza;
gira(2);
fin;
define-nueva-instruccion suma(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
suma(sucede(n));
fin
sino
inicio
si frente-libre entonces
inicio
avanza;
suma(n);
fin
sino
inicio
repetir n veces deja-zumbador;
fin;
fin;
fin;
define-nueva-instruccion contar (n)  como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
contar(sucede(n));
fin
sino
inicio
gira(2);
repetir 2 veces avanza;
gira(1);
repetir 12 veces
inicio
repetir n veces deja-zumbador;
avanza;
fin;
gira(3);
mientras frente-libre hacer avanza;
fin;
fin;
define-nueva-instruccion pasa(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
pasa(sucede(n));
fin
sino
inicio
repetir n veces deja-zumbador;
gira(2);
avanza;
deja-zumbador;
gira(2);
avanza;
gira(3);
avanza;
gira(1);
repetir n veces deja-zumbador;
avanza;
repetir n veces coge-zumbador;
gira(2);
avanza;
gira(2);
fin;
fin;
define-nueva-instruccion baja(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
baja(sucede(n));
fin
sino
inicio

gira(2);
mientras frente-libre hacer avanza;
gira(2);
repetir n veces deja-zumbador;
fin;
fin;

define-nueva-instruccion resta  como
inicio
si junto-a-zumbador entonces
inicio
avanza;
si junto-a-zumbador entonces
inicio
coge-zumbador;
gira(2);
avanza;
coge-zumbador;
gira(2);
avanza;
avanza;
deja-zumbador;
gira(2);
avanza;
avanza;
gira(2);
si izquierda-libre entonces
resta;
sal-de-instruccion;
fin
sino
inicio
gira(1);
avanza;
gira(3);
pasa(0);
gira(2);
avanza;
gira(2);
si izquierda-libre entonces
resta;
fin;
fin
sino
inicio
avanza;
si no-junto-a-zumbador entonces
inicio
gira(2);
avanza;
gira(3);
avanza;
gira(3);
deja-zumbador;
si izquierda-libre entonces
resta;
fin
sino
inicio
avanza;
baja(0);
gira(1);
avanza;
gira(3);
si izquierda-libre entonces
resta;
fin;
fin;
fin;





    inicia-ejecucion
    mientras no-orientado-al-sur hacer gira(1);
    acomoda;
     repetir 11 veces
     inicio
     suma(0);
     acomoda;
     fin;
     gira(3);
     mientras frente-libre hacer avanza;
     gira(3);
     mientras no-junto-a-zumbador hacer avanza;
     contar(0);
     gira(3);
     avanza;
     gira(3);
     resta;

        apagate;
    termina-ejecucion
finalizar-programa
