iniciar-programa
    inicia-ejecucion


    mientras no-orientado-al-sur hacer gira-izquierda;
    mientras frente-libre y no-junto-a-zumbador hacer avanza;
    repetir 3 veces gira-izquierda;
    mientras frente-libre y no-junto-a-zumbador hacer avanza;
    repetir 3 veces gira-izquierda;

    mientras no-junto-a-zumbador hacer
        inicio

        si no-junto-a-zumbador y izquierda-bloqueada y derecha-bloqueada y frente-bloqueado entonces
            inicio
            repetir 2 veces gira-izquierda;
            si no-junto-a-zumbador y frente-libre entonces avanza;
            fin;

        si no-junto-a-zumbador y izquierda-bloqueada y derecha-bloqueada y frente-libre entonces avanza;


        si no-junto-a-zumbador y izquierda-bloqueada y derecha-libre y frente-bloqueado entonces
            inicio
            repetir 3 veces gira-izquierda;
            si no-junto-a-zumbador entonces avanza;
            fin;

        si no-junto-a-zumbador y izquierda-bloqueada y derecha-libre y frente-libre entonces
            inicio
            repetir 3 veces gira-izquierda;
            mientras frente-libre y no-junto-a-zumbador hacer avanza;

            si frente-bloqueado entonces
                        inicio
                        repetir 2 veces gira-izquierda;
                        mientras frente-libre y no-junto-a-zumbador hacer avanza;
                        repetir 3 veces gira-izquierda;
                        si no-junto-a-zumbador y frente-libre entonces avanza;
                        fin;
            fin;

        si no-junto-a-zumbador y izquierda-libre y derecha-bloqueada y frente-libre entonces
            inicio
            gira-izquierda;
            si no-junto-a-zumbador entonces avanza;
            fin;

        si no-junto-a-zumbador y izquierda-libre y derecha-bloqueada y frente-bloqueado entonces
            inicio
            gira-izquierda;
            si no-junto-a-zumbador entonces avanza;
            fin;

        si no-junto-a-zumbador y izquierda-libre y derecha-libre y frente-libre entonces
            inicio
            gira-izquierda;
            si frente-libre y no-junto-a-zumbador entonces avanza;
            si izquierda-libre y derecha-libre y frente-libre entonces
                inicio
                gira-izquierda;
                si frente-libre entonces avanza;
                fin;
            si izquierda-libre y derecha-libre y frente-bloqueado entonces
                inicio
                gira-izquierda;
                si frente-libre entonces avanza;
                fin;
            si izquierda-libre y derecha-bloqueada y frente-libre entonces
                inicio
                gira-izquierda;
                si frente-libre entonces avanza;
                fin;





            fin;

        si no-junto-a-zumbador y izquierda-libre y derecha-libre y frente-bloqueado entonces
            inicio
            gira-izquierda;
            si no-junto-a-zumbador entonces avanza;
            fin;

    fin;

        apagate;
    termina-ejecucion
finalizar-programa
