iniciar-programa
define-nueva-instruccion derecha como
repetir 3 veces
gira-izquierda;

define-nueva-instruccion vuelta como
repetir 2 veces
gira-izquierda;

define-nueva-instruccion num(e) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
num(sucede(e));
avanza;
fin
sino inicio
gira-izquierda;
avanza;
gira-izquierda;
fin;
fin;

define-nueva-instruccion expul como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
expul;
deja-zumbador;
fin
sino inicio
derecha;
avanza;
fin;
fin;

define-nueva-instruccion expul2 como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
expul2;
deja-zumbador;
fin
sino inicio
gira-izquierda;
avanza;
fin;
fin;

define-nueva-instruccion reuvi como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
reuvi;
deja-zumbador;
fin
sino inicio
vuelta;
avanza;
derecha;
mientras no junto-a-zumbador y frente-libre hacer
avanza;
vuelta;
si junto-a-zumbador entonces
avanza;
fin;
fin;

define-nueva-instruccion yeah como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
yeah;
deja-zumbador;
fin
sino inicio
mientras frente-libre hacer
avanza;
gira-izquierda;
avanza;
gira-izquierda;
mientras junto-a-zumbador hacer
avanza;
fin;
fin;

define-nueva-instruccion ja como inicio
si frente-libre y no junto-a-zumbador entonces inicio
avanza;
ja;
fin
sino inicio
si junto-a-zumbador entonces inicio
yeah;
vuelta;
mientras frente-libre hacer
avanza;
derecha;
avanza;
derecha;
mientras no junto-a-zumbador hacer inicio
si frente-libre entonces inicio
avanza;
fin
sino
sal-de-instruccion;
fin;
vuelta;
ja;
fin;
fin;
fin;

define-nueva-instruccion repul como inicio
si junto-a-zumbador entonces inicio
expul2;
vuelta;
avanza;
gira-izquierda;
si no-junto-a-zumbador entonces
avanza;
repul;
fin;
fin;

define-nueva-instruccion haz(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
haz(sucede(n));
si frente-libre entonces
avanza;
fin
sino inicio
avanza;
num(0);
vuelta;
avanza;
expul;
vuelta;
avanza;
derecha;
fin;
fin;

define-nueva-instruccion rey como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
rey;
deja-zumbador;
fin
sino inicio
vuelta;
mientras no junto-a-zumbador hacer
avanza;
vuelta;
avanza;
fin;
fin;

define-nueva-instruccion lol como inicio
avanza;
mientras no junto-a-zumbador hacer inicio
si frente-bloqueado entonces
sal-de-instruccion;
avanza;
fin;
si junto-a-zumbador entonces inicio
rey;
lol;
fin;
fin;

    inicia-ejecucion
    mientras no orientado-al-norte hacer
    gira-izquierda;
    avanza;
    derecha;
    avanza;
    vuelta;
    Haz(0);
    vuelta;
    repul;
    gira-izquierda;
    avanza;
    reuvi;

    lol;
    vuelta;
    mientras frente-libre hacer
    avanza;
    derecha;
    avanza;
    derecha;
    mientras no junto-a-zumbador hacer
    avanza;
    vuelta;
    ja;




        apagate;
    termina-ejecucion
finalizar-programa
