iniciar-programa
    define-nueva-instruccion gira-derecha como repetir 3 veces gira-izquierda;
    define-nueva-instruccion vuelta como repetir 2 veces gira-izquierda;
    define-nueva-instruccion marcando como repetir 5 veces deja-zumbador;
    define-nueva-instruccion verificando como
    inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
                deja-zumbador;
                sal-de-instruccion;
            fin sino
            inicio
                si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces
                inicio
                    marcando;
                    marcando;
                fin sino
                inicio
                    marcando;
                fin;
                apagate;
            fin;
        fin sino
        inicio
            sal-de-instruccion;
        fin;
    fin;

    define-nueva-instruccion esquina como
    inicio
        mientras frente-libre y izquierda-bloqueada hacer
        inicio
            avanza;
            verificando;
        fin;
        si frente-bloqueado y izquierda-bloqueada entonces
        inicio
            si izquierda-bloqueada entonces
            inicio
                marcando;
                gira-derecha;
                si frente-libre entonces avanza;
                verificando;
            fin;
        fin;
        si frente-libre y izquierda-libre entonces
        inicio
            marcando;
            gira-izquierda;
            si frente-libre entonces avanza;
            verificando;
        fin;
        si izquierda-libre y derecha-libre entonces
        inicio
            marcando;
            gira-izquierda;
            si frente-libre entonces avanza;
            verificando;
        fin;
        si frente-bloqueado y derecha-bloqueada y izquierda-libre entonces
        inicio
            si derecha-bloqueada entonces
            inicio
                marcando;
                gira-izquierda;
                si frente-libre entonces avanza;
                verificando;
            fin;
        fin;
        verificando;
        esquina;
    fin;
    define-nueva-instruccion verificando1 como
    inicio
        si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
        inicio
            vuelta;
            si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
            inicio
                repetir 20 veces
                inicio
                    si algun-zumbador-en-la-mochila entonces deja-zumbador;
                fin;
                apagate;
            fin;
        fin;
    fin;
    inicia-ejecucion
        verificando1;
        si frente-bloqueado y izquierda-bloqueada  entonces gira-derecha;
        deja-zumbador;
        esquina;
        apagate;
    termina-ejecucion
finalizar-programa
