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

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


define-nueva-instruccion retroceso como
inicio
media-vuelta;
avanza;
media-vuelta;
fin;

define-nueva-instruccion mira-este como
inicio
mientras no-orientado-al-este hacer
gira-derecha;
fin;

define-nueva-instruccion mira-norte como
inicio
mientras no-orientado-al-norte hacer
gira-derecha;
fin;

define-nueva-instruccion mira-oeste como
inicio
mientras no-orientado-al-oeste hacer
gira-derecha;
fin;

define-nueva-instruccion mira-sur como
inicio
mientras no-orientado-al-sur hacer
gira-derecha;
fin;

define-nueva-instruccion a-la-base como
inicio
mira-sur;
mientras frente-libre hacer
avanza;
 gira-izquierda;
 mientras no-junto-a-zumbador hacer
 inicio
 si frente-libre entonces
 inicio
avanza;
fin
sino
inicio
media-vuelta;
mientras  no-junto-a-zumbador hacer
avanza;
fin;
fin;
si frente-bloqueado entonces
inicio
si orientado-al-este entonces
mira-norte;
si frente-bloqueado entonces
inicio
si junto-a-zumbador entonces
inicio
gira-derecha;
avanza;
gira-izquierda;
avanza;
gira-izquierda;
avanza;
gira-derecha;
fin;
mientras  no-junto-a-zumbador hacer
avanza;
fin;
fin;
mira-norte;
coge-zumbador;
si junto-a-zumbador entonces
inicio
deja-zumbador;
avanza;
gira-izquierda;
avanza;
gira-izquierda;
avanza;
gira-derecha;
mientras  no-junto-a-zumbador hacer
avanza;
mira-norte;
fin
sino
inicio
deja-zumbador
fin;
fin;

define-nueva-instruccion recoge-rama como
inicio
mientras junto-a-zumbador hacer
inicio
coge-zumbador;
 si frente-libre entonces
avanza;
fin;
retroceso;
mira-norte;
avanza;
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador hacer
inicio
coge-zumbador;
avanza;
fin;
a-la-base;
fin
sino
inicio
gira-izquierda;
avanza;
mira-norte;
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador hacer
inicio
coge-zumbador;
avanza;
fin;
a-la-base;
fin;
fin;
fin;


define-nueva-instruccion busca-rama como
inicio
mientras junto-a-zumbador hacer
inicio
avanza;
si junto-a-zumbador entonces
inicio
gira-derecha;
avanza;
si junto-a-zumbador entonces
inicio
recoge-rama;
fin
sino
inicio
retroceso;
media-vuelta;
avanza;
si junto-a-zumbador entonces
inicio
recoge-rama;
fin
sino
inicio
retroceso;
mira-norte;
fin;
fin;
fin;
fin;
fin;

define-nueva-instruccion ir-esquina como
inicio
mira-sur;
mientras frente-libre hacer
avanza;
gira-derecha;
mientras frente-libre hacer
avanza;
mientras algun-zumbador-en-la-mochila hacer
deja-zumbador;
fin;

    inicia-ejecucion
    a-la-base;
    busca-rama;
    ir-esquina;
        apagate;
    termina-ejecucion
finalizar-programa
