iniciar-programa
 define-nueva-instruccion norte como inicio
 mientras no-orientado-al-norte 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 sur como inicio
 mientras no-orientado-al-sur hacer gira-izquierda;
 fin;
  define-nueva-instruccion inicio-de-cajon como inicio
  oeste;
  mientras frente-libre hacer avanza;
  norte;
  avanza;
  este;
  fin;
  define-nueva-instruccion correr como inicio
  si no-junto-a-zumbador entonces
  inicio
           mientras  frente-libre y   no-junto-a-zumbador hacer avanza;
           si frente-bloqueado y no-junto-a-zumbador entonces
           inicio
                 si izquierda-libre y orientado-al-este entonces
                                     inicio
                                           gira-izquierda;
                                           avanza;
                                           gira-izquierda;
                                      fin
                                      sino
                                       inicio

                                          si derecha-libre y orientado-al-oeste entonces
                                          inicio
                                             repetir 3 veces gira-izquierda;
                                             avanza;
                                             repetir 3 veces gira-izquierda;
                                          fin;


                                        fin;
         fin;
  fin
    sino
      inicio
          mientras frente-libre  hacer gira-izquierda;
          si frente-bloqueado y izquierda-libre entonces inicio gira-izquierda; avanza;gira-izquierda; fin;
      fin;

   fin;
  define-nueva-instruccion contavilizar como inicio
  mientras junto-a-zumbador hacer coge-zumbador;
  norte;
  avanza;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  sur;
  avanza;
  este; avanza;
  repetir 98 veces inicio
  si junto-a-zumbador entonces inicio coge-zumbador; si frente-libre entonces avanza; fin sino
  si no-junto-a-zumbador entonces avanza;
  fin;
  fin;
 define-nueva-instruccion inicio-del-cajon como inicio
    oeste;
    mientras frente-libre hacer avanza;
    sur;
    mientras frente-libre hacer avanza;
    este;
 fin;
 define-nueva-instruccion colocar como inicio
 mientras no-orientado-al-norte hacer norte;
   si junto-a-zumbador entonces
    inicio
      coge-zumbador;
      colocar;
      avanza;
    fin
    sino
     inicio
       si frente-bloqueado y ningun-zumbador-en-la-mochila entonces inicio
       oeste;
       mientras frente-libre hacer avanza;
       sur;
       mientras frente-libre hacer avanza;
       este;
       contavilizar;
       oeste;
       si junto-a-zumbador entonces coge-zumbador;
       mientras frente-libre hacer avanza;
       mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
        norte;
  avanza;
  mientras junto-a-zumbador hacer coge-zumbador;
  sur;
  avanza;
  este;
      apagate;
       fin;
       fin;
   si no-orientado-al-este entonces inicio-del-cajon;

  fin;

define-nueva-instruccion uno como inicio
 norte;
 si derecha-bloqueada entonces inicio
 colocar;
 mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
 inicio-de-cajon;
 norte;

 si derecha-bloqueada entonces inicio
 mientras no-junto-a-zumbador y frente-libre hacer inicio
 mientras no-junto-a-zumbador y frente-libre hacer avanza;
 colocar;
  si no-junto-a-zumbador entonces inicio
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;fin sino inicio
  mientras junto-a-zumbador hacer coge-zumbador; oeste; mientras frente-libre hacer avanza; mientras algun-zumbador-en-la-mochila hacer deja-zumbador; fin;
 inicio-de-cajon;
 norte;
 fin;
 fin;
 fin;

fin;


  inicia-ejecucion
  inicio-de-cajon;
  uno;
  ESTE;
  mientras ningun-zumbador-en-la-mochila  hacer inicio
  mientras frente-libre y no-junto-a-zumbador hacer  correr;

  colocar;

 si no-junto-a-zumbador entonces inicio
 mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
 fin
 sino
 inicio
    mientras junto-a-zumbador y orientado-al-este hacer coge-zumbador;
    oeste; mientras frente-libre hacer avanza;
     mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
 fin;
si no-orientado-al-sur entonces inicio-de-cajon;
  fin;






        apagate;
    termina-ejecucion
finalizar-programa
