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 orienta como
    inicio
        sur;
        mientras frente-libre hacer avanza;
        oeste;
        mientras frente-libre hacer avanza;
        norte;
    fin;

define-nueva-instruccion xe2(i) como
    inicio
        mientras frente-libre  hacer
            inicio
                repetir i veces si frente-libre entonces avanza;
                deja-zumbador;
            fin;
    fin;

define-nueva-instruccion xe(i) como
    inicio
        si junto-a-zumbador entonces
            inicio
                coge-zumbador;
                xe(sucede(i));
            fin
            sino
                inicio
                    repetir i veces deja-zumbador;
                    xe2(i);
                fin;
    fin;
define-nueva-instruccion cuenta como
    inicio
        si frente-libre entonces
            inicio
                avanza;
                cuenta;
                deja-zumbador;
            fin;
   fin;
define-nueva-instruccion ye2(i) como
    inicio
        repetir i veces avanza;
        mientras no-junto-a-zumbador hacer
            inicio
                repetir i veces avanza;
            fin;
        si junto-a-zumbador entonces
            inicio
                este;
                avanza;
                avanza;
                sur;
                cuenta;
            fin;
   fin;
define-nueva-instruccion ye(i) como
    inicio
       si junto-a-zumbador entonces
           inicio
               coge-zumbador;
               ye(sucede(i));
           fin
           sino
               inicio
                   repetir i veces deja-zumbador;
                   oeste;
                   avanza;
                   norte;
                   ye2(i);
               fin;
     fin;

    inicia-ejecucion
    orienta;
    xe(0);
    orienta; este;
    avanza;
    norte;
    ye(0);
        apagate;
    termina-ejecucion
finalizar-programa
