iniciar-programa

define-nueva-instruccion gira-derecha como inicio
     gira-izquierda;
     gira-izquierda;
     gira-izquierda
      fin;

define-nueva-instruccion recoger como inicio
         mientras junto-a-zumbador hacer inicio
              coge-zumbador;
              fin;
              fin;

define-nueva-instruccion subir-bajar como inicio
   mientras frente-libre hacer inicio
             recoger;
             avanza;
             fin
fin;

define-nueva-instruccion voltear-bajar como inicio

   gira-derecha;
   si frente-libre entonces inicio
   avanza;
   gira-derecha;
   fin;
fin;

define-nueva-instruccion voltear-subir como inicio

   gira-izquierda;
   si frente-libre entonces inicio
   avanza;
   gira-izquierda;
   fin;
   fin;

define-nueva-instruccion dejar-zumbadores como inicio
  mientras algun-zumbador-en-la-mochila hacer inicio
    deja-zumbador;
   fin;
   fin;
  define-nueva-instruccion ubicarse como inicio
   si orientado-al-norte entonces inicio
             voltear-bajar;
          fin
             sino inicio
            voltear-subir
            fin;
  fin;
 define-nueva-instruccion moverse como inicio
 mientras frente-libre hacer inicio
       subir-bajar;
       recoger;
       ubicarse;
         fin;
         fin;
define-nueva-instruccion devolverse como inicio
     si orientado-al-norte entonces inicio
        gira-izquierda;
     fin
     sino inicio
         si orientado-al-este entonces inicio
         gira-izquierda;
         gira-izquierda;
         fin
            sino inicio
               si orientado-al-sur entonces inicio
               gira-derecha;
               fin;
            fin;
     fin;
  subir-bajar;
  fin;
  inicia-ejecucion
     si frente-libre entonces inicio
     moverse;
     fin
     sino inicio
       gira-derecha;
      subir-bajar;
     fin;
     si derecha-libre entonces inicio
      gira-derecha;
      subir-bajar
     fin;
    recoger;
    devolverse;
    dejar-zumbadores;
     apagate;
    termina-ejecucion
finalizar-programa
