iniciar-programa
   define-nueva-instruccion gira(n) como inicio
      repetir n veces
         gira-izquierda;
   fin;
   define-nueva-instruccion norte como inicio
      mientras no-orientado-al-norte hacer
         gira(1);
   fin;
   define-nueva-instruccion este como inicio
      mientras no-orientado-al-este hacer
         gira(1);
   fin;
   define-nueva-instruccion sur como inicio
      mientras no-orientado-al-sur hacer
         gira(1);
   fin;
   define-nueva-instruccion oeste como inicio
      mientras no-orientado-al-oeste hacer
         gira(1);
   fin;
   define-nueva-instruccion torta como inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         si no-junto-a-zumbador entonces inicio
            deja-zumbador
         fin
         sino inicio
            coge-zumbador;
            norte;
            si frente-libre entonces  inicio
               avanza;
               torta;
               sur;
               avanza;
            fin;
            este;
            si frente-libre entonces inicio
               avanza;
               torta;
               oeste;
               avanza;
            fin;
            sur;
            si frente-libre entonces  inicio
               avanza;
               torta;
               norte;
               avanza;
            fin;
            oeste;
            si frente-libre entonces  inicio
               avanza;
               torta;
               este;
               avanza;
            fin;
         fin;
      fin;
   fin;
   define-nueva-instruccion continua como inicio
      norte;
      repetir 2 veces inicio
         gira-izquierda;
         mientras frente-libre hacer
            avanza;
      fin;
      este;
   fin;
   define-nueva-instruccion da como inicio
      si junto-a-zumbador   entonces inicio
         coge-zumbador;
         si junto-a-zumbador  entonces inicio
            deja-zumbador;
         fin
         sino inicio
            deja-zumbador;
            deja-zumbador;
            deja-zumbador
         fin;
      fin;
   fin;
   define-nueva-instruccion camina como inicio
      si frente-libre entonces inicio
         avanza;
      fin
      sino inicio
         si orientado-al-este entonces inicio
            norte;
            si frente-libre entonces inicio
               avanza;
               oeste;
            fin;
         fin
         sino inicio
            norte;
            si frente-libre entonces inicio
               avanza;
               este;
            fin;
         fin;
      fin;
   fin;
   define-nueva-instruccion reparte como inicio
      mientras no-orientado-al-norte y algun-zumbador-en-la-mochila hacer inicio
         da;
         camina;
      fin;
   fin;
   define-nueva-instruccion recursivo como inicio
      si algun-zumbador-en-la-mochila entonces inicio
         deja-zumbador;
         deja-zumbador;
         recursivo;
         deja-zumbador;
      fin
      sino inicio
         mientras junto-a-zumbador hacer inicio
            coge-zumbador;
         fin;
      fin;
   fin;
   inicia-ejecucion
      torta;
      continua;
      reparte;
      continua;
      recursivo;
      apagate;
   termina-ejecucion
finalizar-programa