iniciar-programa

define-nueva-instruccion c como inicio
si no-junto-a-zumbador entonces inicio
si ningun-zumbador-en-la-mochila entonces apagate;
si no-junto-a-zumbador entonces deja-zumbador;
si frente-libre entonces avanza;
 si no-junto-a-zumbador entonces c;
   si  junto-a-zumbador y orientado-al-este y frente-bloqueado entonces inicio
 gira-izquierda;
  si frente-libre entonces avanza;
 gira-izquierda;
  si no-junto-a-zumbador entonces c;
  fin;

  si  junto-a-zumbador y orientado-al-oeste y frente-bloqueado entonces inicio
  repetir 3 veces gira-izquierda;
  si frente-libre entonces avanza;
  repetir 3 veces gira-izquierda;
  si no-junto-a-zumbador entonces c;
  fin;

   fin;
   fin;

define-nueva-instruccion b como inicio
 si frente-bloqueado y izquierda-bloqueada y no junto-a-zumbador entonces inicio
 mientras no orientado-al-oeste hacer gira-izquierda;
 c;
 fin;
 fin;

define-nueva-instruccion a como inicio
si no junto-a-zumbador y orientado-al-norte entonces inicio
mientras no orientado-al-este hacer gira-izquierda;
mientras no junto-a-zumbador hacer avanza;
gira-izquierda;
fin;
 si junto-a-zumbador entonces inicio
 mientras junto-a-zumbador hacer coge-zumbador;
 avanza;
 si junto-a-zumbador entonces a;
  si no junto-a-zumbador entonces inicio
  repetir 2 veces gira-izquierda;
  mientras frente-libre hacer avanza;
  si frente-bloqueado y izquierda-bloqueada y no junto-a-zumbador entonces b;
  gira-izquierda;
mientras no junto-a-zumbador y frente-libre hacer avanza;
  gira-izquierda;
  si junto-a-zumbador entonces a;
  fin;
  fin;
  fin;

    inicia-ejecucion
    mientras no orientado-al-norte hacer gira-izquierda;
   a;
        apagate;
    termina-ejecucion
finalizar-programa
