iniciar-programa

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

define-nueva-instruccion recoge como inicio
si orientado-al-este entonces inicio
avanza;
mientras junto-a-zumbador hacer inicio
coge-zumbador;
fin;
fin;
fin;

define-nueva-instruccion regresar como inicio
gira-izquierda;
mientras frente-libre hacer inicio
avanza;
fin;
gira-izquierda;
avanza;
mientras algun-zumbador-en-la-mochila hacer inicio
deja-zumbador;
fin;
apagate;
fin;

define-nueva-instruccion busca-derecha como inicio
si derecha-libre entonces inicio
si orientado-al-oeste entonces inicio
gira-derecha;
fin;
fin;

fin;

define-nueva-instruccion busca-izquierda como inicio
si izquierda-libre entonces inicio
si orientado-al-norte entonces inicio
gira-izquierda;
avanza;
gira-derecha;
fin;
fin
sino inicio
si orientado-al-norte entonces inicio
mientras izquierda-bloqueada hacer inicio
avanza;
fin;
gira-izquierda;
avanza;
regresar;
fin;
fin;
fin;

define-nueva-instruccion revisa-izquierda como inicio
si izquierda-libre entonces inicio
gira-izquierda;
avanza;
fin;
fin;

define-nueva-instruccion siembra como inicio
si no-junto-a-zumbador entonces inicio
deja-zumbador;
fin;
fin;

define-nueva-instruccion camina como inicio
mientras frente-libre hacer inicio
avanza;
busca-derecha;
siembra;
si frente-bloqueado entonces inicio
repetir 2 veces inicio
gira-izquierda;
fin;
busca-izquierda;
fin;
fin;
fin;

define-nueva-instruccion buscar como inicio
si algun-zumbador-en-la-mochila entonces inicio
busca-derecha;
camina;
fin;
fin;


    inicia-ejecucion
    mientras ningun-zumbador-en-la-mochila hacer inicio
       si orientado-al-este entonces inicio
       fin
       sino inicio
       repetir 2 veces inicio
       gira-izquierda;
       fin;
       fin;
       recoge;
       fin;
       mientras izquierda-bloqueada hacer inicio
       avanza;
       fin;
       si orientado-al-este entonces inicio
        mientras izquierda-libre hacer inicio
        gira-izquierda;
        avanza;
        fin;
        mientras izquierda-bloqueada hacer inicio
        avanza;
        revisa-izquierda;
        fin;
        deja-zumbador;
        fin;
        mientras algun-zumbador-en-la-mochila hacer inicio
        buscar;
        fin;

        apagate;
    termina-ejecucion
finalizar-programa

