iniciar-programa
        define-nueva-instruccion gira-derecha como
        inicio
        repetir 3 veces gira-izquierda;
        fin;
        define-nueva-instruccion media-vuelta como
        inicio
        repetir 2 veces gira-izquierda;
        fin;





        define-nueva-instruccion des como
        inicio
           mientras frente-libre y no junto-a-zumbador hacer avanza;
           si junto-a-zumbador entonces
           inicio
               coge-zumbador;
               si junto-a-zumbador entonces
               inicio
                   coge-zumbador;
                   des;
                   si izquierda-libre entonces
                   inicio
                       mientras junto-a-zumbador hacer avanza;
                       deja-zumbador;
                       deja-zumbador;
                   fin
                   sino
                   inicio
                       gira-derecha;
                       avanza;
                       gira-izquierda;
                       mientras junto-a-zumbador hacer avanza;
                       deja-zumbador;
                       deja-zumbador;
                   fin;
                   media-vuelta;
                   mientras frente-libre hacer avanza;
                   media-vuelta;
               fin
               sino
               inicio
                   des;
                   si izquierda-bloqueada entonces
                   inicio
                       mientras junto-a-zumbador hacer avanza;
                       deja-zumbador
                   fin
                   sino
                   inicio
                       gira-izquierda;
                       avanza;
                       gira-derecha;
                       mientras junto-a-zumbador hacer avanza;
                       deja-zumbador;
                   fin;
                       media-vuelta;
                       mientras frente-libre hacer avanza;
                       media-vuelta;
               fin;
           fin;
           si frente-bloqueado entonces
           inicio
               si izquierda-libre entonces
               inicio
                   gira-izquierda;
                   avanza;
                   gira-izquierda;
                   mientras frente-libre hacer avanza;
                   media-vuelta;
                   des;

               fin
               sino
               inicio
                   gira-derecha;
               fin;
            fin;
         fin;


    inicia-ejecucion
    mientras no orientado-al-este hacer
    gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    des;

        apagate;
    termina-ejecucion
finalizar-programa
