iniciar-programa
 define-nueva-instruccion mv como
  inicio
   repetir 2 veces
    gira-izquierda;
  fin;
 define-nueva-instruccion baja como
  inicio
   mv;
   mientras frente-libre hacer
    avanza;
   gira-izquierda;
   avanza;
   gira-izquierda;
  fin;
 define-nueva-instruccion Encuentra como
  inicio
   si no(frente-bloqueado y derecha-bloqueada) entonces
    inicio
     si frente-libre entonces
      inicio
       si junto-a-zumbador entonces
        inicio
         coge-zumbador;
         avanza;
         encuentra;
        fin
       sino
        inicio
         repetir 100 veces
          deja-zumbador;
         apagate;
        fin;
      fin
     sino
      inicio
       si junto-a-zumbador entonces
        coge-zumbador
       sino
        inicio
         repetir 100 veces
          deja-zumbador;
         apagate;
        fin;
       baja;
       encuentra;
      fin;
    fin
   sino
    inicio
     si junto-a-zumbador entonces
      coge-zumbador
     sino
      inicio
       repetir 100 veces
        deja-zumbador;
       apagate;
      fin;
     gira-izquierda;
     mientras frente-libre hacer
      avanza;
     gira-izquierda;
     mientras frente-libre hacer
      avanza;
     mv;
     encuentra;
    fin;
  fin;
    inicia-ejecucion
     mientras no-orientado-al-oeste hacer
      gira-izquierda;
     mientras frente-libre hacer
      avanza;
     gira-izquierda;
     mientras frente-libre hacer
      avanza;
     mv;
     si no-junto-a-zumbador entonces
      inicio
       repetir 100 veces
        deja-zumbador;
       apagate;
      fin;
     encuentra;
        apagate;
    termina-ejecucion
finalizar-programa
