iniciar-programa
define-nueva-instruccion norte como inicio  mientras no orientado-al-norte hacer gira-izquierda; fin;
define-nueva-instruccion sur como inicio  mientras no orientado-al-sur hacer gira-izquierda; fin;
define-nueva-instruccion este como inicio  mientras no orientado-al-este hacer gira-izquierda; fin;
define-nueva-instruccion oeste como inicio  mientras no orientado-al-oeste hacer gira-izquierda; fin;
define-nueva-instruccion horizontal como inicio
       mientras junto-a-zumbador hacer inicio
        coge-zumbador;
        si frente-libre entonces avanza;
        oeste;
        si junto-a-zumbador entonces inicio
            coge-zumbador;
        fin sino inicio
            si frente-libre entonces avanza;
            este;
            si algun-zumbador-en-la-mochila entonces deja-zumbador;
            mientras algun-zumbador-en-la-mochila hacer inicio
                deja-zumbador;
                si frente-libre entonces avanza;
                si algun-zumbador-en-la-mochila entonces deja-zumbador;
                oeste;
                si frente-libre entonces avanza;
                este;
            fin;
             apagate;

        fin;
        si frente-libre entonces avanza;
        este;
        si no junto-a-zumbador entonces inicio
            mientras algun-zumbador-en-la-mochila hacer inicio
                deja-zumbador;
                si frente-libre entonces avanza;
                si algun-zumbador-en-la-mochila entonces deja-zumbador;
                oeste;
                si frente-libre entonces avanza;
                este;
            fin;
            este;
            si frente-libre entonces avanza;
             horizontal;
        fin;
   fin;
fin;
define-nueva-instruccion compara como inicio
   mientras junto-a-zumbador hacer inicio
        coge-zumbador;
        si frente-libre entonces avanza;
        sur;
        si junto-a-zumbador entonces inicio
            coge-zumbador;
        fin sino inicio
            si frente-libre entonces avanza;
            norte;
            si algun-zumbador-en-la-mochila entonces deja-zumbador;
            mientras algun-zumbador-en-la-mochila hacer inicio
                deja-zumbador;
                si frente-libre entonces avanza;
                si algun-zumbador-en-la-mochila entonces deja-zumbador;
                sur;
                si frente-libre entonces avanza;
                norte;
            fin;
            este;
            horizontal;
        fin;
        si frente-libre entonces avanza;
        norte;
        si no junto-a-zumbador entonces inicio
            mientras algun-zumbador-en-la-mochila hacer inicio
                deja-zumbador;
                si frente-libre entonces avanza;
                si algun-zumbador-en-la-mochila entonces deja-zumbador;
                sur;
                si frente-libre entonces avanza;
                norte;
            fin;
            norte;
            si frente-libre entonces avanza;
             compara;
        fin;
   fin;

fin;
    inicia-ejecucion
        norte;
        si frente-libre entonces
        compara;
        apagate;
    termina-ejecucion
finalizar-programa
