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