iniciar-programa
  define-nueva-instruccion gi como inicio
  gira-izquierda; fin;
  define-nueva-instruccion gm como inicio
  gira-izquierda; gira-izquierda; fin;

  define-nueva-instruccion de como inicio
  si algun-zumbador-en-la-mochila entonces inicio
  deja-zumbador; de;
  si junto-a-zumbador entonces
  coge-zumbador; mientras frente-libre y no-junto-a-zumbador hacer avanza;
  fin sino inicio
  avanza; gi; fin; fin;

  define-nueva-instruccion re como inicio
  gm; mientras frente-libre hacer avanza; gm; gi; avanza;
  gm; mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  avanza; gi; fin;

  define-nueva-instruccion ve como inicio
  mientras frente-libre y no-junto-a-zumbador hacer avanza;
  si frente-libre o junto-a-zumbador entonces gm;
  mientras junto-a-zumbador hacer coge-zumbador;
  mientras frente-libre y no-junto-a-zumbador hacer avanza;
  si junto-a-zumbador entonces inicio gm; avanza; fin;
  si frente-bloqueado entonces inicio gm; fin;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  si frente-libre entonces avanza;
  si junto-a-zumbador entonces apagate;
  si frente-libre y orientado-al-este entonces ve; fin;

    inicia-ejecucion
    mientras no-orientado-al-norte hacer gi;
    avanza; gm; de; re; ve;
        apagate;
    termina-ejecucion
finalizar-programa
