iniciar-programa

         define-nueva-instruccion camina(n) como inicio
   repetir n veces
   avanza;
   fin;


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

    define-nueva-instruccion media-vuelta como inicio
 gira-izquierda;
 gira-izquierda;
 fin;
           define-nueva-instruccion  avanzar como inicio
              si frente-libre  y no-junto-a-zumbador y frente-libre entonces inicio
        avanza;
        avanzar;
        si frente-libre y orientado-al-oeste entonces
        avanza;
           si frente-bloqueado y orientado-al-oeste o orientado-al-norte y frente-bloqueado entonces inicio
          media-vuelta;
           fin;

        avanza;

        fin
        sino si izquierda-libre y no-junto-a-zumbador y no-orientado-al-sur  entonces inicio
         gira-izquierda;
         avanzar;
         gira-derecha;

        fin;
         si junto-a-zumbador entonces  inicio
          coge-zumbador;

          si no-junto-a-zumbador  entonces inicio
           media-vuelta;

           fin;
           fin;
            fin;





         define-nueva-instruccion salir  como inicio
           si junto-a-zumbador entonces inicio

           avanzar;
           fin;


         si izquierda-bloqueada y frente-libre y no-junto-a-zumbador y orientado-al-norte entonces inicio
          avanza;
           salir;
             fin
         sino si orientado-al-norte y izquierda-libre o frente-bloqueado y orientado-al-norte  entonces inicio
         gira-izquierda;
         avanza;
         salir;
          fin;
          fin;

            define-nueva-instruccion ubicate como inicio



              gira-derecha;
              mientras frente-libre hacer
              avanza;
              fin;


               define-nueva-instruccion regresar como inicio
           si frente-bloqueado y orientado-al-sur y  no-junto-a-zumbador y algun-zumbador-en-la-mochila entonces inicio
          deja-zumbador;
           fin;
            fin;



    inicia-ejecucion
         mientras no orientado-al-norte hacer inicio
          gira-izquierda;
          fin;
        si orientado-al-norte entonces
         salir;
          si orientado-al-oeste entonces
          avanzar;
          avanza;
          si orientado-al-este entonces
           ubicate;

          si orientado-al-sur entonces
          regresar;

        apagate;
    termina-ejecucion
finalizar-programa
