 iniciar-programa
   define-nueva-instruccion gira-derecha como inicio
       repetir 3 veces
       gira-izquierda;
    fin;
    define-nueva-instruccion vuelta como inicio
       repetir 2 veces
       gira-izquierda;
    fin;
    define-nueva-instruccion recoge-fila como inicio
        mientras no-junto-a-zumbador y frente-libre hacer inicio
            avanza;
        fin;
       mientras junto-a-zumbador hacer inicio
          coge-zumbador;
          mientras no-junto-a-zumbador y frente-libre hacer avanza;
         fin;
        fin;
   define-nueva-instruccion posicionate como inicio
    si izquierda-bloqueada y orientado-al-norte y frente-bloqueado entonces inicio
          gira-derecha;
            fin;
            fin;
   define-nueva-instruccion recoge-zumbadores como inicio
      mientras orientado-al-norte y frente-libre y derecha-libre hacer inicio
      recoge-fila;
      gira-derecha;
      si frente-libre entonces avanza;
      gira-derecha;
      recoge-fila;
      gira-izquierda;
      si frente-libre entonces avanza;
      gira-izquierda;
      fin;
      mientras orientado-al-norte y derecha-bloqueada y frente-libre hacer inicio
       recoge-fila;
       fin;
     mientras orientado-al-este y frente-libre hacer inicio
       recoge-fila;
       fin;
    si orientado-al-norte y derecha-bloqueada y frente-bloqueado entonces inicio
       vuelta;
       mientras frente-libre hacer avanza;

       fin;
     fin;
  inicia-ejecucion
   inicio
      posicionate;
      recoge-zumbadores;
      si no-orientado-al-oeste entonces inicio
        si orientado-al-este entonces vuelta;
        si orientado-al-sur entonces gira-derecha;
                         fin;
      mientras frente-libre y orientado-al-oeste hacer avanza;
      mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
      apagate;
   fin;
  termina-ejecucion
  finalizar-programa

 