iniciar-programa
    inicia-ejecucion
   si frente-bloqueado entonces inicio
  si  frente-bloqueado entonces gira-izquierda;   si  frente-bloqueado entonces gira-izquierda;si  frente-bloqueado entonces gira-izquierda;si  frente-bloqueado entonces gira-izquierda;
   mientras frente-libre hacer inicio
   mientras frente-libre y no-junto-a-zumbador hacer avanza;
   mientras junto-a-zumbador hacer coge-zumbador;
   fin;
   mientras frente-bloqueado y no-orientado-al-oeste hacer gira-izquierda;
   mientras frente-libre hacer avanza;
   mientras frente-bloqueado y algun-zumbador-en-la-mochila hacer deja-zumbador;
   fin
   sino inicio
   mientras (orientado-al-norte o (orientado-al-este o orientado-al-oeste)o (orientado-al-sur y izquierda-libre))  y frente-libre  hacer inicio
   mientras frente-libre y no-junto-a-zumbador hacer avanza;
   mientras junto-a-zumbador hacer coge-zumbador;
   si frente-bloqueado y no-orientado-al-sur  entonces inicio
   repetir 3 veces  gira-izquierda;
  si frente-libre y no-junto-a-zumbador entonces avanza;
   repetir 3 veces gira-izquierda;
   fin;
   si frente-bloqueado y orientado-al-sur entonces inicio
   gira-izquierda;
   si frente-libre y no-junto-a-zumbador entonces  avanza;
   gira-izquierda;
   fin;

   fin;
  mientras orientado-al-sur y izquierda-bloqueada hacer inicio
   mientras frente-libre y no-junto-a-zumbador hacer avanza;
   mientras junto-a-zumbador hacer coge-zumbador;

   si frente-bloqueado entonces repetir 3 veces gira-izquierda;
   mientras frente-libre y no-junto-a-zumbador hacer avanza;
   mientras (frente-bloqueado y algun-zumbador-en-la-mochila) y no-orientado-al-sur hacer inicio
   deja-zumbador;
   fin;

   fin;
   fin;

       si ningun-zumbador-en-la-mochila entonces   inicio
        apagate;
        fin;
    termina-ejecucion
finalizar-programa
