iniciar-programa
 
 define-nueva-instruccion gira-derecha como

  inicio
  
repetir 3 veces
  gira-izquierda;
 
 fin;
  
define-nueva-instruccion  media-vuelta como
 
 inicio
  
gira-izquierda;
 
 gira-izquierda;
 
 fin;
    
inicia-ejecucion
    
  mientras frente-libre hacer
      avanza;
      media-vuelta;
      mientras izquierda-libre y frente-libre hacer
      inicio
      mientras no junto-a-zumbador y frente-libre hacer
      avanza;
      mientras junto-a-zumbador hacer
      inicio
      coge-zumbador;
      avanza;
      media-vuelta;
      fin;
      si orientado-al-sur entonces
      inicio
      mientras algun-zumbador-en-la-mochila hacer
      inicio
      deja-zumbador;
      avanza;
      media-vuelta;
      fin;
      fin;
      si orientado-al-norte entonces
      inicio
      avanza;
      media-vuelta;
      mientras junto-a-zumbador hacer
      inicio
      coge-zumbador;
      avanza;
      deja-zumbador;
      media-vuelta;
      avanza;
      media-vuelta;
      fin;
      si frente-libre entonces
      avanza;
      media-vuelta;
      mientras algun-zumbador-en-la-mochila hacer
      inicio
      deja-zumbador;
      avanza;
      media-vuelta;
      fin;
      fin;
      si frente-libre entonces
      avanza;
      si frente-bloqueado entonces
      inicio
      si izquierda-libre entonces
      inicio
      gira-izquierda;
      avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      media-vuelta;
      fin;
      fin;
      fin;
      mientras frente-libre hacer
      inicio
       mientras no junto-a-zumbador y frente-libre hacer
      avanza;
      mientras junto-a-zumbador hacer
      inicio
      coge-zumbador;
      avanza;
      media-vuelta;
      fin;
      si orientado-al-sur entonces
      inicio
      mientras algun-zumbador-en-la-mochila hacer
      inicio
      deja-zumbador;
      avanza;
      media-vuelta;
      fin;
      fin;
      si orientado-al-norte entonces
      inicio
      avanza;
      media-vuelta;
      mientras junto-a-zumbador hacer
      inicio
      coge-zumbador;
      avanza;
      deja-zumbador;
      media-vuelta;
      avanza;
      media-vuelta;
      fin;
      si frente-libre entonces
      avanza;
      media-vuelta;
      mientras algun-zumbador-en-la-mochila hacer
      inicio
      deja-zumbador;
      avanza;
      media-vuelta;
      fin;
      fin;
      si frente-libre entonces
      avanza;
      si frente-bloqueado entonces
      inicio
      si izquierda-libre entonces
      inicio
      gira-izquierda;
      avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      media-vuelta;
      fin;
      fin;
      fin;
      media-vuelta;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      media-vuelta;
      mientras derecha-libre hacer
      inicio
      mientras junto-a-zumbador hacer
      coge-zumbador;
      si frente-libre entonces
      avanza;
      si frente-bloqueado entonces
      inicio
      mientras junto-a-zumbador hacer
      coge-zumbador;
      media-vuelta;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      avanza;
      gira-izquierda;
      fin;
      fin;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      gira-derecha;
      mientras frente-libre hacer
      avanza;
      mientras algun-zumbador-en-la-mochila hacer
      deja-zumbador;
      media-vuelta;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      mientras frente-libre hacer
      avanza;
      media-vuelta;
      mientras derecha-libre hacer
      inicio
      mientras junto-a-zumbador hacer
      coge-zumbador;
      mientras algun-zumbador-en-la-mochila hacer
      inicio
      deja-zumbador;
      avanza;
      fin;
      media-vuelta;
      mientras frente-libre hacer
      avanza;
      gira-izquierda;
      avanza;
      gira-izquierda;
      fin;
      mientras junto-a-zumbador hacer
      coge-zumbador;
      mientras algun-zumbador-en-la-mochila hacer
      inicio
      deja-zumbador;
      si frente-libre entonces
      avanza;
      fin;
        apagate;
    termina-ejecucion
finalizar-programa

