 iniciar-programa

   define-nueva-instruccion gira-derecha como inicio
           repetir 3 veces gira-izquierda;
   fin;

   define-nueva-instruccion media-vuelta como inicio
           gira-izquierda;
           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 norte como inicio
       mientras no-orientado-al-norte hacer gira-izquierda;
   fin;

 define-nueva-instruccion construye como inicio

    si derecha-bloqueada entonces inicio
        gira-izquierda;
        mientras frente-libre hacer avanza;
    fin;
    este;

   mientras algun-zumbador-en-la-mochila hacer inicio
     mientras frente-libre hacer inicio
           deja-zumbador;
           avanza;
     fin;
     deja-zumbador;
     si orientado-al-oeste entonces inicio
         gira-derecha;
         avanza;
         gira-derecha;
     fin sino inicio
         gira-izquierda;
         avanza;
         gira-izquierda;
     fin;

   fin;
   apagate;
   fin;


   define-nueva-instruccion recorre como inicio
     este;
     mientras frente-libre hacer avanza;
     norte;

     mientras frente-libre hacer inicio
           mientras frente-libre hacer inicio
               si junto-a-zumbador entonces inicio
                   coge-zumbador;
               fin;
               avanza;
           fin;

           si junto-a-zumbador entonces inicio
               coge-zumbador;
           fin;

           oeste;

           si frente-libre entonces inicio
               avanza;
           fin sino inicio
               construye;
           fin;

       si izquierda-bloqueada entonces inicio
           gira-derecha;
       fin sino inicio
           gira-izquierda;
       fin;

    fin;


   fin;



   inicia-ejecucion
       recorre;
       construye;
       apagate;

   termina-ejecucion
   finalizar-programa
  