iniciar-programa
define-nueva-instruccion pared como
inicio
mientras no-orientado-al-oeste  hacer
  gira-izquierda;
  mientras frente-libre hacer
  inicio
     deja-zumbador;
     avanza;

  fin;

  mientras no-orientado-al-este hacer
  gira-izquierda;
  deja-zumbador;
 mientras frente-libre hacer avanza;
 mientras no-orientado-al-norte hacer gira-izquierda;
 avanza;

  si algun-zumbador-en-la-mochila entonces
  pared;

  apagate;


fin;
define-nueva-instruccion recoger como
inicio
    mientras no-orientado-al-norte hacer
    gira-izquierda;
    mientras junto-a-zumbador hacer
    inicio
        coge-zumbador;
        avanza;
      fin;
      gira-izquierda;gira-izquierda;
      mientras frente-libre hacer
      avanza;
      mientras no-orientado-al-este hacer
      gira-izquierda;
      si frente-libre entonces
      avanza;
      si frente-bloqueado y no junto-a-zumbador entonces
      pared;
      recoger;
fin;


    inicia-ejecucion
    recoger;
        apagate;
    termina-ejecucion
finalizar-programa
