iniciar-programa
define-nueva-instruccion media-vuelta como
inicio
repetir 2 veces
gira-izquierda;
fin;

define-nueva-instruccion gira-derecha como
inicio
repetir 3 veces
gira-izquierda;
fin;

define-nueva-instruccion uno como
inicio
gira-derecha;
mientras no-junto-a-zumbador hacer
avanza;
repetir 100 veces
coge-zumbador;
media-vuelta;
mientras frente-libre hacer
avanza;
gira-derecha;
avanza;
avanza;
gira-derecha;
avanza;
avanza;
avanza;
gira-izquierda;
fin;

define-nueva-instruccion baja como
inicio
media-vuelta;
mientras frente-libre hacer
avanza;
gira-izquierda;
avanza;
gira-izquierda;
fin;

define-nueva-instruccion recoge como
inicio
mientras algun-zumbador-en-la-mochila hacer
deja-zumbador;
media-vuelta;
avanza;
media-vuelta;
mientras no(frente-bloqueado y izquierda-bloqueada) hacer
inicio
coge-zumbador;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
media-vuelta;
mientras frente-libre hacer
avanzA;
gira-derecha;
avanza;
gira-derecha;
fin;
fin;
coge-zumbador;
fin;

define-nueva-instruccion regresa como
inicio
media-vuelta;
mientras frente-libre hacer
avanza;
gira-derecha;
mientras frente-libre hacer
avanza;
gira-izquierda;
mientras frente-libre hacer
avanza;
mientras algun-zumbador-en-la-mochila hacer
deja-zumbador;
fin;

define-nueva-instruccion siembra como
inicio
mientras no (frente-bloqueado y derecha-bloqueada) hacer
inicio
deja-zumbador;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
baja;
fin;
fin;
deja-zumbador;
recoge;
regresa;
fin;

define-nueva-instruccion dos como
inicio
gira-izquierda;
avanza;
mientras no-junto-a-zumbador hacer
avanza;
repetir 150 veces
coge-zumbador;
media-vuelta;
mientras frente-libre hacer
avanza;
gira-derecha;
repetir 5 veces
avanza;
gira-derecha;
avanza;
avanza;
avanza;
gira-izquierda;
fin;

define-nueva-instruccion regreso como
inicio
media-vuelta;
mientras frente-libre hacer
avanza;
gira-derecha;
mientras frente-libre hacer
avanza;
gira-izquierda;
mientras frente-libre hacer
avanza;
gira-izquierda;
avanza;
mientras algun-zumbador-en-la-mochila hacer
deja-zumbador;
fin;

define-nueva-instruccion recoger como
inicio
mientras algun-zumbador-en-la-mochila hacer
deja-zumbador;
media-vuelta;
avanza;
avanza;
media-vuelta;
mientras no(frente-bloqueado y izquierda-bloqueada) hacer
inicio
coge-zumbador;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
media-vuelta;
mientras frente-libre hacer
avanzA;
gira-derecha;
avanza;
gira-derecha;
fin;
fin;
coge-zumbador;
fin;

define-nueva-instruccion sembrar como
inicio
mientras no (frente-bloqueado y derecha-bloqueada) hacer
inicio
deja-zumbador;
si frente-libre entonces
inicio
avanza;
fin
sino
inicio
baja;
fin;
fin;
deja-zumbador;
recoger;
regreso;
fin;

define-nueva-instruccion compara como
inicio
mientras junto-a-zumbador hacer
inicio
coge-zumbador;
media-vuelta;
avanza;
fin;
si orientado-al-oeste entonces
inicio
media-vuelta;
avanza;
mientras junto-a-zumbador hacer
inicio
coge-zumbador;
media-vuelta;
avanza;
deja-zumbador;
media-vuelta;
avanza;
fin;
mientras algun-zumbador-en-la-mochila hacer
inicio
media-vuelta;
avanza;
deja-zumbador;
fin;
fin
sino
inicio
mientras algun-zumbador-en-la-mochila hacer
inicio
deja-zumbador;
media-vuelta;
avanza;
fin;
fin;
fin;

    inicia-ejecucion
    mientras no-orientado-al-norte hacer
    gira-izquierda;
    uno;
    siembra;
    dos;
    sembrar;
    compara;
        apagate;
    termina-ejecucion
finalizar-programa
