iniciar-programa
    define-nueva-instruccion gira(x) como
        inicio
            repetir x veces
                gira-izquierda;
        fin;
    define-nueva-instruccion deja como
        inicio
            mientras no-orientado-al-sur hacer
                gira(1);
            mientras frente-libre hacer
                inicio
                    deja-zumbador;
                    avanza;
                fin;
                deja-zumbador;
                gira(2);
                mientras frente-libre y junto-a-zumbador hacer
                    avanza;
        fin;
    define-nueva-instruccion principal como
        inicio
            mientras no-orientado-al-este hacer
                gira(1);
            avanza;
            mientras junto-a-zumbador hacer
                coge-zumbador;
            gira(2);
            avanza;
            gira(3);
            avanza;
            mientras derecha-bloqueada hacer
                avanza;
            gira(3);
            avanza;
            gira(1);
            mientras frente-libre hacer
                avanza;
            deja;
            mientras frente-bloqueado y derecha-libre hacer
                inicio
                    mientras no-orientado-al-este hacer
                        gira(1);
                    si frente-libre entonces
                        avanza;
                    deja;

                fin;
            gira(2);
            mientras izquierda-bloqueada hacer
                avanza;
            gira(1);
            avanza;
        fin;
   inicia-ejecucion
        principal;
        apagate;
    termina-ejecucion
finalizar-programa