iniciar-programa

    define-nueva-instruccion gd como inicio
     gira-izquierda;
     gira-izquierda;
     gira-izquierda;
     fin;

    inicia-ejecucion

     si orientado-al-norte entonces gd;

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

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

   mientras orientado-al-este hacer inicio

    si frente-bloqueado y ningun-zumbador-en-la-mochila y orientado-al-este y no-junto-a-zumbador entonces apagate;


      mientras no-junto-a-zumbador y frente-libre hacer avanza;

     mientras junto-a-zumbador hacer coge-zumbador;

      mientras junto-a-zumbador y frente-bloqueado hacer coge-zumbador;


     mientras frente-libre hacer avanza;

     si frente-bloqueado y orientado-al-este entonces gira-izquierda;


     mientras derecha-bloqueada hacer avanza;




     gd;
     avanza;
     gd;

     mientras frente-libre hacer avanza;



     si junto-a-zumbador y orientado-al-sur entonces gira-izquierda;

     mientras junto-a-zumbador hacer avanza;

     mientras algun-zumbador-en-la-mochila hacer deja-zumbador;

     gira-izquierda;
     gira-izquierda;

     mientras izquierda-bloqueada hacer inicio
     si frente-bloqueado y orientado-al-oeste entonces gd;
     avanza;
     fin;

     gira-izquierda;
     avanza;
     gira-izquierda;

      mientras frente-libre hacer avanza;

      gd;

      mientras frente-libre hacer avanza;

      gira-izquierda;
      gira-izquierda;

        mientras no-junto-a-zumbador y frente-libre hacer avanza;

 si frente-bloqueado y ningun-zumbador-en-la-mochila y orientado-al-este y no-junto-a-zumbador entonces apagate; 


        fin;


        apagate;
    termina-ejecucion
finalizar-programa
