iniciar-programa
define-nueva-instruccion mv como
inicio
repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion gd como
inicio
repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion z como
inicio
mientras derecha-libre hacer
inicio
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador y frente-libre hacer
inicio
 mientras junto-a-zumbador hacer
 coge-zumbador;
 avanza;
fin;
mv;
mientras frente-libre hacer
avanza;
mv;
fin;
gd;
avanza;
gira-izquierda;
fin;
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador y frente-libre hacer
inicio
 mientras junto-a-zumbador hacer
 coge-zumbador;
 avanza;
fin;
mv;
mientras frente-libre hacer
avanza;
mv;
fin;
avanza;
gira-izquierda;
mientras frente-libre hacer
avanza;
gira-izquierda;
mientras frente-libre hacer
avanza;
gira-izquierda;
mientras algun-zumbador-en-la-mochila hacer
deja-zumbador;
fin;

define-nueva-instruccion z2 como
inicio
mientras derecha-libre hacer
inicio
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador y frente-libre hacer
inicio
 mientras junto-a-zumbador hacer
 coge-zumbador;
 avanza;
fin;
mv;
mientras frente-libre hacer
avanza;
mv;
fin;
gd;
avanza;
gira-izquierda;
fin;
si junto-a-zumbador entonces
inicio
mientras junto-a-zumbador y frente-libre hacer
inicio
 mientras junto-a-zumbador hacer
 coge-zumbador;
 avanza;
fin;
mv;
mientras frente-libre hacer
avanza;
mv;
fin;
avanza;
gira-izquierda;
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 h como
inicio
 si junto-a-zumbador entonces
 inicio
 coge-zumbador;
 h;
 deja-zumbador;
 fin
 sino
 inicio
 mv;
 avanza;
 fin;
fin;

define-nueva-instruccion c como
inicio
mientras junto-a-zumbador hacer
inicio
mv; coge-zumbador;
si frente-libre entonces avanza;
fin;
si orientado-al-este entonces
inicio
mv;
si frente-libre entonces avanza;
fin
sino
inicio
mv;
avanza;
deja-zumbador;
h;
fin;
fin;

define-nueva-instruccion m como
inicio
si junto-a-zumbador entonces
inicio
repetir 2 veces coge-zumbador;
m;
deja-zumbador;
fin;
fin;




    inicia-ejecucion
      mientras derecha-libre hacer avanza;
      avanza;
      repetir 2 veces
      inicio
      gd;
      avanza;
      fin;
      mv;
      z;
      gira-izquierda;
      mientras derecha-libre hacer avanza;
      avanza;
      gd;
      repetir 7 veces avanza;
      gd; avanza;
      mv;
      z2;
      c;
      m;

        apagate;
    termina-ejecucion
finalizar-programa
