iniciar-programa
define-nueva-instruccion media-vuelta como inicio
repetir 2 veces
 gira-izquierda;
fin;
define-nueva-instruccion gira-derecha como inicio
 repetir 3 veces
  gira-izquierda;
 fin;
define-nueva-instruccion acomoda como
inicio
 si junto-a-zumbador entonces
  inicio
   coge-zumbador;
   acomoda;
   avanza;
  fin
  sino
  inicio
   media-vuelta;
   mientras frente-libre hacer
    avanza;
   gira-izquierda;
   mientras frente-libre hacer
    avanza;
   gira-izquierda;
  fin;
 fin;
    inicia-ejecucion
    mientras no-orientado-al-norte hacer
     gira-izquierda;
    avanza;
    gira-derecha;
    mientras no(frente-bloqueado y izquierda-bloqueada) hacer
    inicio
     si junto-a-zumbador entonces
      inicio
       acomoda;
       deja-zumbador;
       media-vuelta;
       mientras frente-libre hacer
        avanza;
       gira-derecha;
       avanza;
       gira-derecha;
      fin
      sino
      inicio
       si frente-libre entonces
        inicio
         avanza;
        fin
       sino
        inicio
         media-vuelta;
         mientras frente-libre hacer
          avanza;
         gira-derecha;
         avanza;
         gira-derecha;
         fin;
      fin;
   fin;
   si junto-a-zumbador entonces
    inicio
     acomoda;
     deja-zumbador;
      media-vuelta;
    mientras frente-libre hacer
     avanza;
    media-vuelta;
    fin
    sino
    inicio
     media-vuelta;
     mientras frente-libre hacer
      avanza;
     gira-izquierda;
     mientras frente-libre hacer
      avanza;
     gira-izquierda;
    fin;
    mientras frente-libre hacer
    inicio
     avanza;
     si junto-a-zumbador entonces
     inicio
      coge-zumbador;
      si no-junto-a-zumbador entonces
       inicio
        media-vuelta;
        mientras frente-libre hacer
         avanza;
        deja-zumbador;
        media-vuelta;
        mientras no-junto-a-zumbador y frente-libre hacer
         avanza;
       fin
       sino
       inicio
        coge-zumbador;
       fin;
    fin;
   fin;
        apagate;
    termina-ejecucion
finalizar-programa
