iniciar-programa
    define-nueva-instruccion norte como mientras no orientado-al-norte hacer gira-izquierda;
    define-nueva-instruccion sur como mientras no orientado-al-sur hacer gira-izquierda;
    define-nueva-instruccion este como mientras no orientado-al-este hacer gira-izquierda;
    define-nueva-instruccion oeste como mientras no orientado-al-oeste hacer gira-izquierda;
    define-nueva-instruccion alsa como inicio
        este;
        avanza;
        avanza;
        mientras junto-a-zumbador hacer inicio
            mientras junto-a-zumbador hacer
                coge-zumbador;
            norte;
            avanza;
            mientras algun-zumbador-en-la-mochila hacer inicio
                deja-zumbador;
                si frente-libre entonces
                    avanza;
            fin;
            sur;
            mientras frente-libre hacer
                avanza;
            este;
            avanza;
        fin;
        oeste;
        mientras frente-libre hacer
            avanza;
        este;
    fin;
    define-nueva-instruccion marca como inicio
        mientras junto-a-zumbador hacer
            coge-zumbador;
        avanza;
        avanza;
        avanza;
        mientras algun-zumbador-en-la-mochila hacer inicio
            deja-zumbador;
            avanza;
        fin;
        oeste;
        avanza;
        avanza;
        mientras junto-a-zumbador hacer inicio
            coge-zumbador;
            avanza;
       fin;
       avanza;
       mientras algun-zumbador-en-la-mochila hacer
           deja-zumbador;
    fin;
    define-nueva-instruccion avanzar como inicio
        repetir 27 veces
            si no junto-a-zumbador y frente-libre entonces
                avanza;
    fin;
    define-nueva-instruccion recoge como inicio
        mientras frente-libre hacer inicio
            coge-zumbador;
            si frente-libre entonces
            avanza;
        fin;
        SI JUNTO-A-ZUMBADOR ENTONCES INICIO
            OESTE;
            MIENTRAS JUNTO-A-ZUMBADOR HACER
                AVANZA;
        FIN;
            este;
            mientras no-junto-a-zumbador hacer
                avanza;
            oeste;
            avanza;
          mientras algun-zumbador-en-la-mochila hacer
            deja-zumbador;
     fin;
    define-nueva-instruccion busca como inicio
         mientras no-junto-a-zumbador  hacer inicio
                avanzar;
                si junto-a-zumbador entonces
                    sal-de-instruccion;
                si orientado-al-este entonces inicio
                    sur;
                    avanza;
                    oeste;
                fin sino inicio
                    sur;
                    avanza;
                    este;
                fin;
        fin;
    fin;
    define-nueva-instruccion sube como inicio
        norte;
        mientras frente-libre hacer
            avanza;
       este;
       avanza;
       avanza;
    fin;
    define-nueva-instruccion ejecuta como inicio
         mientras no-orientado-al-sur hacer inicio
              oeste;
            mientras frente-libre hacer
                avanza;
             sube;
             busca;
             si (junto-a-zumbador y orientado-al-oeste y izquierda-bloqueada) O(DERECHA-BLOQUEADA Y ORIENTADO-AL-ESTE)  entonces
                 apagate;
             sur;
             recoge;
             oeste;
            mientras frente-libre hacer
                avanza;
            sube;
        fin;
     fin;

     inicia-ejecucion
        alsa;
        marca;
        ejecuta;
        apagate;
    termina-ejecucion
finalizar-programa

