iniciar-programa
define-nueva-instruccion gira(n) como
inicio
repetir n veces gira-izquierda;
fin;
define-nueva-instruccion acomoda como
inicio
mientras no-orientado-al-sur hacer
gira(1);
mientras frente-libre hacer avanza;
gira(3);
mientras frente-libre hacer avanza;
gira(3);
fin;
define-nueva-instruccion sitio como
inicio
si no-junto-a-zumbador entonces
inicio
deja-zumbador;
repetir 4 veces
inicio
si frente-libre entonces
inicio
avanza;
si junto-a-zumbador entonces
inicio
coge-zumbador;
si  junto-a-zumbador entonces
inicio
coge-zumbador;
si no-junto-a-zumbador entonces
inicio
deja-zumbador;
deja-zumbador;
gira(2);
avanza;
si junto-a-zumbador entonces
inicio
coge-zumbador;
si no-junto-a-zumbador entonces
inicio
repetir 2 veces deja-zumbador;
fin
sino
deja-zumbador;
fin;
deja-zumbador;
fin
sino
inicio
repetir 2 veces deja-zumbador;
gira(2);
avanza;
fin;
fin
sino
inicio
deja-zumbador;
gira(2);
avanza;
fin;
gira(1);
fin
sino
inicio
gira(2);
avanza;
gira(1);
fin ;
 fin
sino
gira(3);
 fin;
fin;
fin;


define-nueva-instruccion junta(n) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
junta(sucede(n));
fin
sino
inicio
acomoda;
repetir n veces
deja-zumbador;
fin;
fin;
define-nueva-instruccion juntar como
inicio
si frente-libre entonces
inicio
si junto-a-zumbador entonces
junta(0);
avanza;
si junto-a-zumbador entonces
junta(0);
fin
sino
inicio
si junto-a-zumbador entonces junta(0);
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-libre entonces
inicio
avanza;
gira(1);
fin
sino
apagate;
fin;
juntar;
fin;
define-nueva-instruccion quita como
inicio
repetir 2 veces
si junto-a-zumbador entonces
coge-zumbador;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-libre entonces
inicio
avanza;
gira(1);
fin
sino
inicio
acomoda;
juntar;
fin;
fin;
quita;
fin;
define-nueva-instruccion busca como
inicio
sitio;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-libre entonces
inicio
avanza;
gira(1);
busca;
fin
sino
inicio
gira(2);
mientras frente-libre hacer avanza;
gira(3);
quita;
fin;
fin;
busca;
fin;
define-nueva-instruccion deja como
inicio
si junto-a-zumbador entonces
deja-zumbador;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-bloqueado entonces
inicio
acomoda;
sal-de-instruccion;
fin;
avanza;
gira(1);
fin;
deja;
fin;





inicia-ejecucion
acomoda;
deja;
busca;
        apagate;
    termina-ejecucion
finalizar-programa
