iniciar-programa
    inicia-ejecucion

 si orientado-al-norte entonces inicio
   gira-izquierda;
   gira-izquierda;
   fin;


  si orientado-al-oeste entonces inicio
  gira-izquierda;
  fin;

  si orientado-al-este entonces inicio
  gira-izquierda;
  gira-izquierda;
  gira-izquierda;
  fin;

   mientras orientado-al-sur y frente-libre hacer inicio
   avanza;
   fin;                    

   si orientado-al-sur y frente-bloqueado entonces inicio
   gira-izquierda;
   gira-izquierda;
   gira-izquierda;
   fin;

   mientras orientado-al-oeste y frente-libre hacer inicio
   avanza;
   fin;

   si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada y orientado-al-oeste entonces inicio
   gira-izquierda;
   gira-izquierda;
  mientras frente-libre hacer inicio
  avanza;

  mientras junto-a-zumbador hacer inicio
  coge-zumbador;
  fin;
   fin;
  fin;

   si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada y orientado-al-este entonces inicio
   gira-izquierda;
   gira-izquierda;
   fin;

   mientras frente-libre hacer inicio
  avanza;
  fin;
  mientras algun-zumbador-en-la-mochila hacer inicio
  deja-zumbador;

  fin;

 si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada y orientado-al-oeste entonces inicio
  apagate;
  fin;


  mientras junto-a-zumbador hacer coge-zumbador; 




   mientras no-junto-a-zumbador hacer inicio

      mientras junto-a-zumbador hacer inicio
      coge-zumbador
      fin;



    si frente-bloqueado y orientado-al-sur y izquierda-bloqueada entonces inicio
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    fin;

    si frente-bloqueado y orientado-al-sur entonces inicio
    gira-izquierda;
    avanza;
    gira-izquierda;
    fin;

    si frente-bloqueado y orientado-al-norte y derecha-bloqueada entonces inicio
    gira-izquierda;
    gira-izquierda;
    fin;

    si frente-bloqueado y orientado-al-norte entonces inicio
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;

    avanza;
     mientras junto-a-zumbador hacer inicio
    coge-zumbador
    fin;
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    fin;

    si frente-bloqueado y izquierda-bloqueada y orientado-al-oeste entonces inicio
    gira-izquierda;
    gira-izquierda;
    gira-izquierda;
    fin;

    si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces inicio
    apagate;
    fin;

       avanza;

      mientras junto-a-zumbador hacer inicio
      coge-zumbador
      fin;


      mientras frente-bloqueado y izquierda-bloqueada y derecha-libre y orientado-al-oeste y algun-zumbador-en-la-mochila hacer inicio
     gira-izquierda;
     gira-izquierda;
     gira-izquierda;
     mientras algun-zumbador-en-la-mochila hacer inicio
     deja-zumbador;

     fin;
     avanza;
     apagate;
     fin;


     si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada y orientado-al-sur entonces inicio
     mientras algun-zumbador-en-la-mochila hacer inicio
     deja-zumbador;
     fin;
     apagate;
     fin;

    fin;




        apagate;
    termina-ejecucion
finalizar-programa
