iniciar-programa
    inicia-ejecucion

    si frente-libre entonces
    inicio


        mientras no-orientado-al-norte hacer
        inicio
           gira-izquierda;
         fin;
         mientras frente-libre hacer
         inicio
           avanza;
         fin;
         mientras no-orientado-al-este hacer
        inicio
          gira-izquierda;
        fin;
        mientras frente-libre y no-junto-a-zumbador hacer
        inicio
          avanza;
        fin;

        si junto-a-zumbador entonces
        inicio
           mientras frente-libre hacer inicio
               avanza;
           fin;
           mientras no-orientado-al-sur hacer
           inicio
              gira-izquierda;
           fin;

            avanza;

           deja-zumbador;
           mientras no-orientado-al-norte hacer
           inicio
              gira-izquierda;
           fin;
           avanza;

           mientras izquierda-libre hacer
              inicio
              mientras no-orientado-al-oeste hacer
              inicio
                 gira-izquierda;
              fin;
              avanza;
              mientras no orientado-al-sur hacer
              inicio
                 gira-izquierda;
              fin;
              avanza;
              deja-zumbador;
              mientras no-orientado-al-norte hacer
              inicio
                 gira-izquierda;
              fin;
              avanza;
          fin;

           mientras no-orientado-al-este hacer inicio
           gira-izquierda;
         fin;
         mientras frente-libre hacer
         inicio
           avanza;
         fin;
          fin;


        mientras no-orientado-al-sur hacer
        inicio
           gira-izquierda;
        fin;
        avanza;
        mientras no-orientado-al-este hacer
        inicio
          gira-izquierda;
        fin;





        mientras frente-libre hacer
        inicio
           avanza;
           mientras no-orientado-al-norte hacer
           inicio
              gira-izquierda;
           fin;
           avanza;
             mientras no-orientado-al-este hacer
        inicio
          gira-izquierda;
        fin;
        mientras frente-libre y no-junto-a-zumbador hacer
        inicio
          avanza;
        fin;

        si junto-a-zumbador entonces
        inicio
           mientras frente-libre hacer inicio
               avanza;
           fin;
           mientras no-orientado-al-sur hacer
           inicio
              gira-izquierda;
           fin;

            avanza;

           deja-zumbador;
           mientras no-orientado-al-norte hacer
           inicio
              gira-izquierda;
           fin;
           avanza;

           mientras izquierda-libre hacer
              inicio
              mientras no-orientado-al-oeste hacer
              inicio
                 gira-izquierda;
              fin;
              avanza;
              mientras no orientado-al-sur hacer
              inicio
                 gira-izquierda;
              fin;
              avanza;
              deja-zumbador;
              mientras no-orientado-al-norte hacer
              inicio
                 gira-izquierda;
              fin;
              avanza;
          fin;

           mientras no-orientado-al-este hacer inicio
           gira-izquierda;
         fin;
         mientras frente-libre hacer
         inicio
           avanza;
         fin;
          fin;


        mientras no-orientado-al-sur hacer
        inicio
           gira-izquierda;
        fin;
        avanza;
        mientras no-orientado-al-este hacer
        inicio
          gira-izquierda;
        fin;

     fin;



    fin;


        apagate;
    termina-ejecucion
finalizar-programa
