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 agarrar como
 si junto-a-zumbador entonces
  inicio
   coge-zumbador;
   norte;
  fin;

define-nueva-instruccion subir como
 inicio
 si frente-libre entonces repetir 2 veces avanza;
 fin;

define-nueva-instruccion dejar como
 inicio
  repetir 2 veces deja-zumbador;
 fin;

 define-nueva-instruccion posicionarse como
  inicio
   sur;
   mientras frente-libre hacer avanza;
   este;
   mientras no junto-a-zumbador y frente-libre hacer avanza;
  fin;

 define-nueva-instruccion acomodar como
  inicio
   mientras frente-libre  hacer
    inicio
     mientras junto-a-zumbador hacer coge-zumbador;
      oeste;
       mientras no junto-a-zumbador y frente-libre hacer avanza;
        si junto-a-zumbador entonces
         inicio
          este;
          avanza;
         fin;
       mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
       este;
      si frente-libre entonces  avanza;
      mientras no junto-a-zumbador y frente-libre hacer avanza;
    fin;
  fin;

  define-nueva-instruccion acomoda2 como
   inicio
    mientras junto-a-zumbador hacer coge-zumbador;
    oeste;
    mientras no junto-a-zumbador y frente-libre hacer avanza;
    este;
    mientras junto-a-zumbador y frente-libre hacer avanza;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
   fin;

    inicia-ejecucion
    mientras algun-zumbador-en-la-mochila y junto-a-zumbador  hacer
     inicio
       agarrar;
       subir;
       dejar;
       posicionarse;
     fin;
    acomodar;
    si frente-bloqueado y junto-a-zumbador entonces
     inicio
       acomoda2;
     fin;
        apagate;
    termina-ejecucion
finalizar-programa
