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