iniciar-programa
         define-nueva-instruccion gira-derecha como
     inicio
        repetir 3 veces gira-izquierda;
     fin;

    inicia-ejecucion

   mientras no orientado-al-oeste hacer gira-izquierda;
   mientras frente-libre hacer avanza;
   gira-izquierda;
   mientras frente-libre hacer avanza;
   gira-izquierda;
   gira-izquierda;

   mientras frente-libre hacer
    inicio
      deja-zumbador;
      avanza;
      gira-derecha;
      avanza;
      gira-izquierda;
    fin;
    deja-zumbador;

    gira-izquierda;
    gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    gira-izquierda;

     mientras frente-libre hacer
    inicio
      deja-zumbador;
      avanza;
      gira-izquierda;
      avanza;
      gira-derecha;
    fin;
    deja-zumbador;

     gira-izquierda;
    gira-izquierda;
    mientras frente-libre hacer avanza;
    gira-izquierda;
    gira-izquierda;

     mientras frente-libre hacer
    inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
           gira-izquierda;
            mientras frente-libre hacer avanza;
           gira-izquierda;
           gira-izquierda;
           mientras frente-libre hacer
           inicio
             deja-zumbador;
             avanza;
           fin;
         fin
         sino
         inicio
           deja-zumbador;
           avanza;
           gira-derecha;
           avanza;
           gira-izquierda;
        fin;
      fin;
    fin;
    deja-zumbador;

 gira-izquierda;
 gira-izquierda;
 mientras junto-a-zumbador hacer
 inicio
   coge-zumbador;
   si no junto-a-zumbador entonces
   inicio
      deja-zumbador;
      si frente-libre entonces avanza
      sino
      inicio
        apagate;
      fin;
   fin
   sino
   inicio
      gira-derecha;
      mientras frente-libre hacer avanza;
      gira-izquierda;
      gira-izquierda;
      mientras frente-libre hacer
      inicio
        deja-zumbador;
        avanza;
      fin;

   fin;

 fin;
 deja-zumbador;
 gira-izquierda;
 gira-izquierda;
 mientras frente-libre hacer
 inicio
   coge-zumbador;
   si no junto-a-zumbador entonces
   inicio
     deja-zumbador;
     avanza;
   fin
   sino
   inicio
     mientras junto-a-zumbador hacer coge-zumbador;
     deja-zumbador;
     apagate;
   fin;
 fin;

        apagate;
    termina-ejecucion
finalizar-programa
