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 bolsa como
    inicio
        si junto-a-zumbador entonces
        inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
                coge-zumbador;
                norte;
                si frente-libre entonces
                inicio
                    avanza;
                    bolsa;
                    sur;
                    avanza;
                fin;
                sur;
                si frente-libre entonces
                inicio
                    avanza;
                    bolsa;
                    norte;
                    avanza;
                fin;
                este;
                si frente-libre entonces
                inicio
                    avanza;
                    bolsa;
                    oeste;
                    avanza;
                fin;
                oeste;
                si frente-libre entonces
                inicio
                    avanza;
                    bolsa;
                    este;
                    avanza;
                fin;
             fin sino deja-zumbador;
         fin;
   fin;

   define-nueva-instruccion camina como
   inicio
       si frente-bloqueado entonces
       inicio
           sur;
           si frente-libre entonces
           inicio
               este;
               mientras frente-libre hacer avanza;
               sur;
               avanza;
               oeste;
           fin;
       fin sino avanza;
   fin;

   define-nueva-instruccion reparte como
   inicio
       mientras no-orientado-al-sur y algun-zumbador-en-la-mochila hacer
       inicio
           si no-junto-a-zumbador entonces camina;
           si junto-a-zumbador entonces
           inicio
               coge-zumbador;
               si no-junto-a-zumbador entonces
               inicio
                   repetir 3 veces deja-zumbador;
                   camina;
               fin sino
               inicio
                   deja-zumbador;
                   camina;
               fin;
           fin;
       fin;
       sur;
       mientras frente-libre hacer avanza;
       oeste;
       mientras frente-libre hacer avanza;
   fin;

   define-nueva-instruccion sobran como
   inicio
       si algun-zumbador-en-la-mochila entonces
       inicio
           repetir 2 veces deja-zumbador;
           sobran;
           deja-zumbador;
       fin sino mientras junto-a-zumbador hacer coge-zumbador;
   fin;

   inicia-ejecucion
       bolsa;
       norte;
       mientras frente-libre hacer avanza;
       este;
       mientras frente-libre hacer avanza;
       oeste;
       reparte;
       sobran;
       apagate;
    termina-ejecucion
finalizar-programa
