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 ir11 como
 inicio
  sur;
  mientras frente-libre hacer avanza;
  oeste;
  mientras frente-libre hacer avanza;
  norte;
 fin;

define-nueva-instruccion subir2 como
 inicio
  si junto-a-zumbador entonces
   inicio
    coge-zumbador;
    subir2;
    deja-zumbador;
  fin
   sino
    inicio
     norte;
     repetir 2 veces avanza;
    fin;

 fin;

define-nueva-instruccion gandaya como
 inicio
  si junto-a-zumbador entonces
   inicio
    coge-zumbador;
    gandaya;
     avanza;
   fin;
  fin;

define-nueva-instruccion posicionar como
 inicio
  mientras no junto-a-zumbador hacer avanza;
  sur;
  avanza;
  oeste;
  avanza;
  mientras no junto-a-zumbador hacer avanza;
  norte;
 fin;

define-nueva-instruccion subir como
 inicio
  si junto-a-zumbador entonces
   inicio
    coge-zumbador;
    subir;
    deja-zumbador;
   fin
    sino
     repetir 2 veces avanza;
 fin;

define-nueva-instruccion regreso como
 inicio
  ir11;
 repetir 3 veces  avanza;
  este;
  avanza;
  coge-zumbador;
 fin;

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

define-nueva-instruccion ordena como
 inicio
  si junto-a-zumbador entonces
   inicio
    coge-zumbador;
    ordena;
    deja-zumbador;
   fin
    sino
     inicio
      oeste;
      mientras no junto-a-zumbador y frente-libre hacer avanza;
      este;
     si junto-a-zumbador entonces avanza;
     fin;
 fin;

define-nueva-instruccion ayar como
 inicio
  norte;
  repetir 2 veces avanza;
  este;
  mientras no junto-a-zumbador y frente-libre hacer avanza;
  si no junto-a-zumbador y frente-bloqueado entonces apagate;
 fin;

define-nueva-instruccion bajar como
 inicio
  si junto-a-zumbador entonces
   inicio
    coge-zumbador;
    bajar;
    deja-zumbador;
   fin
    sino
     inicio
      mientras frente-libre hacer avanza;
      sur;
      mientras frente-libre hacer avanza;
      oeste;
      mientras no junto-a-zumbador hacer avanza;
      este;
      avanza;
     fin;
 fin;
    inicia-ejecucion
        norte;
        avanza;
        este;
        avanza;
       subir2;
       ir11;
       norte;
       avanza;
       este;
       gandaya;
       oeste;
       avanza;
       deja-zumbador;
       ir11;
      repetir 3 veces avanza;
       este;
       avanza;
        mientras junto-a-zumbador hacer
         inicio
          oeste;
          avanza;
          sur;
          repetir 2 veces avanza;
          este;
          posicionar;
           subir;
           regreso;
         fin;
         ir11;
         este;
          mientras frente-libre hacer
           inicio
            acomodar;
             si junto-a-zumbador entonces
              inicio
               ordena;
               este;
              fin;
           fin;
           ir11;
         mientras frente-libre hacer
          inicio
           ayar;
           bajar;
           ir11;
          fin;
        apagate;
    termina-ejecucion
finalizar-programa
