iniciar-programa
define-nueva-instruccion b como inicio
si frente-libre entonces inicio
avanza;
si algun-zumbador-en-la-mochila y no junto-a-zumbador entonces deja-zumbador;
gira-izquierda;
avanza;
si algun-zumbador-en-la-mochila y no junto-a-zumbador entonces deja-zumbador;
repetir 3 veces gira-izquierda;
b;
fin;
fin;
define-nueva-instruccion s(f) como inicio
si frente-bloqueado y derecha-libre entonces inicio
mientras no-orientado-al-oeste hacer gira-izquierda;
si frente-libre entonces avanza;
si frente-libre entonces avanza;
gira-izquierda;
s(sucede(f));
si junto-a-zumbador entonces inicio
repetir 1 veces gira-izquierda;
repetir f veces avanza;
gira-izquierda;
mientras junto-a-zumbador y frente-libre hacer avanza;
si no junto-a-zumbador entonces inicio
repetir 2 veces gira-izquierda;
avanza;
repetir 2 veces gira-izquierda;
coge-zumbador;
fin sino inicio
coge-zumbador;
fin;
fin;
fin;
fin;
define-nueva-instruccion gato(a) como inicio
si junto-a-zumbador entonces inicio
avanza;
avanza;
gato(sucede(a));
si no junto-a-zumbador entonces inicio
mientras no orientado-al-oeste hacer gira-izquierda;
mientras no junto-a-zumbador hacer avanza;
repetir a veces avanza;
repetir 3 veces gira-izquierda;
mientras junto-a-zumbador hacer avanza;
repetir 2 veces gira-izquierda;
avanza;
fin;
fin
fin;




inicia-ejecucion
si ningun-zumbador-en-la-mochila entonces inicio
mientras no-orientado-al-este hacer gira-izquierda;
gato(1);
fin;




    mientras no-orientado-al-este hacer gira-izquierda;
     si no junto-a-zumbador entonces deja-zumbador;
    si frente-libre entonces avanza;
    si algun-zumbador-en-la-mochila y no junto-a-zumbador entonces deja-zumbador;
    si frente-libre entonces avanza;
    si algun-zumbador-en-la-mochila y no junto-a-zumbador entonces deja-zumbador;
    repetir 2 veces gira-izquierda;
    si frente-libre entonces avanza;
    repetir 3 veces gira-izquierda;
    si frente-libre entonces avanza;
    si algun-zumbador-en-la-mochila y no junto-a-zumbador entonces deja-zumbador;
   mientras algun-zumbador-en-la-mochila hacer inicio
    repetir 3 veces gira-izquierda;
  si frente-libre entonces avanza;
   gira-izquierda;
  si frente-libre entonces avanza;
    si algun-zumbador-en-la-mochila y no junto-a-zumbador entonces deja-zumbador;
   repetir 2 veces gira-izquierda;
   b;
   s(1);
   si no-junto-a-zumbador entonces deja-zumbador;

   fin;
        apagate;
    termina-ejecucion
finalizar-programa
