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