       iniciar-programa

    define-nueva-instruccion gira(x) como inicio
    repetir x veces inicio
    gira-izquierda;
    fin;
    fin;
     define-nueva-instruccion divide como  inicio
               mientras orientado-al-este hacer
        inicio
            avanza;
            avanza;
            si frente-libre entonces divide sino gira(2);
        fin;
        si orientado-al-oeste entonces avanza;
    fin;
    inicia-ejecucion
    si orientado-al-sur entonces inicio
    mientras derecha-bloqueada y izquierda-bloqueada hacer inicio
    deja-zumbador;
    avanza;
    fin;
        gira(3);
        mientras frente-libre y orientado-al-oeste hacer inicio
        avanza;
        fin;
        gira(2);
        mientras frente-libre y orientado-al-este hacer inicio
            divide;
            deja-zumbador;
            mientras frente-libre hacer avanza;
            gira(2);
            mientras frente-libre y derecha-bloqueada hacer avanza;
            si derecha-bloqueada entonces apagate
            sino
            inicio
                       gira(3);
                avanza;
                mientras derecha-bloqueada y izquierda-bloqueada hacer  inicio
                si frente-libre entonces inicio
                deja-zumbador;
                avanza;
                fin
                sino inicio
                deja-zumbador;
                apagate;
                fin;
                fin;
                                mientras orientado-al-este hacer inicio
                gira(3);
                fin;
                si orientado-al-sur entonces inicio
                gira(3);
                fin;
 mientras frente-libre hacer avanza;
 gira(2);

                fin;
        fin;
        fin;
apagate;
    termina-ejecucion
finalizar-programa

