iniciar-programa
define-nueva-instruccion orienta-este como inicio
  mientras no-orientado-al-este hacer inicio
    gira-izquierda;
  fin;
Fin;
define-nueva-instruccion orienta-oeste como inicio
 mientras no-orientado-al-oeste hacer inicio
    gira-izquierda;
  fin;
FIN;
define-nueva-instruccion orienta-norte como inicio
 mientras no-orientado-al-norte hacer inicio
    gira-izquierda;
  fin;
FIN;
define-nueva-instruccion orienta-sur como inicio
 mientras no-orientado-al-sur hacer inicio
    gira-izquierda;
  fin;
FIN;

define-nueva-instruccion orientador como inicio
   orienta-oeste;
   mientras frente-libre hacer inicio
      avanza;
   fin;
   orienta-este;
fin;

Define-nueva-instruccion formar-1 como inicio
   orienta-oeste;
   mientras frente-libre hacer inicio
     avanza;
   fin;
   orienta-este;
   mientras junto-a-zumbador hacer inicio
      avanza;
   fin;
   deja-zumbador;
FIN;

Define-nueva-instruccion formar-2 como inicio
   orienta-este;
   mientras frente-libre hacer inicio
     avanza;
   fin;
   orienta-oeste;
   mientras junto-a-zumbador hacer inicio
      avanza;
   fin;
   deja-zumbador;
   deja-zumbador;
FIN;

Define-nueva-instruccion buscar como inicio
   si frente-libre entonces inicio
      si junto-a-zumbador entonces inicio
         coge-zumbador;
         si junto-a-zumbador entonces inicio
            coge-zumbador;
            buscar;
            formar-2;
         fin sino inicio
            buscar;
            formar-1
         fin;
      fin sino inicio
         avanza;
         buscar;
      fin;
   fin sino inicio
     si junto-a-zumbador entonces inicio
        coge-zumbador;
        si junto-a-zumbador entonces inicio
           coge-zumbador;
           buscar;
           formar-2;
        fin sino inicio
           buscar;
           formar-1
        fin;
      fin;  
   fin;
FIN;

    inicia-ejecucion
     orientador;
     buscar;
    apagate;
    termina-ejecucion
finalizar-programa
