iniciar-programa
  define-nueva-instruccion gi como inicio
  gira-izquierda;
  mientras junto-a-zumbador hacer coge-zumbador; fin;
  define-nueva-instruccion gm como inicio
  gira-izquierda; gira-izquierda;
  mientras junto-a-zumbador hacer coge-zumbador; fin;
  define-nueva-instruccion gd como inicio
  gira-izquierda; gira-izquierda; gira-izquierda;
  mientras junto-a-zumbador hacer coge-zumbador; fin;
  define-nueva-instruccion av como inicio
  mientras junto-a-zumbador hacer coge-zumbador; avanza; fin;

  define-nueva-instruccion gid como inicio
  gira-izquierda; deja-zumbador; fin;
  define-nueva-instruccion gmd como inicio
  gira-izquierda; gira-izquierda;
  deja-zumbador; deja-zumbador; fin;
  define-nueva-instruccion gdd como inicio
  gira-izquierda; gira-izquierda; gira-izquierda;
  deja-zumbador; deja-zumbador; deja-zumbador; fin;
  define-nueva-instruccion avd como inicio
  deja-zumbador; avanza; fin;

  define-nueva-instruccion de como inicio
  si frente-libre y (derecha-bloqueada o izquierda-bloqueada) entonces avd;
  si frente-bloqueado y derecha-bloqueada y izquierda-libre entonces gid;
  si frente-bloqueado y izquierda-bloqueada y derecha-libre entonces gdd;
  si derecha-bloqueada o izquierda-bloqueada entonces de;
  fin;
  define-nueva-instruccion so como inicio
  mientras junto-a-zumbador hacer coge-zumbador;
  si frente-bloqueado y derecha-libre y izquierda-libre entonces inicio
  gi; repetir 3 veces avanza; mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  repetir 2 veces gira-izquierda; repetir 3 veces avanza; repetir 3 veces gira-izquierda; avanza; fin;
  si frente-libre entonces inicio
  avanza; mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  gira-izquierda; gira-izquierda; avanza; avanza; fin; fin;

  define-nueva-instruccion re como inicio
  si frente-libre y (derecha-bloqueada o izquierda-bloqueada) entonces av;
  si derecha-libre y izquierda-bloqueada y frente-bloqueado entonces gd;
  si izquierda-libre y derecha-bloqueada y frente-bloqueado entonces gi;
  si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces gm;
  si derecha-bloqueada o izquierda-bloqueada entonces re; fin;

    inicia-ejecucion
    de; so; re; mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    si frente-libre entonces inicio avanza;
    mientras junto-a-zumbador hacer coge-zumbador; fin;
    si frente-bloqueado entonces inicio gira-izquierda; repetir 3 veces avanza; mientras junto-a-zumbador hacer
    coge-zumbador; fin;
        apagate;
    termina-ejecucion
finalizar-programa
