iniciar-programa
define-nueva-instruccion gira(n) como inicio
 si izquierda-bloqueada entonces inicio
 repetir 3 veces
  gira-izquierda;

  fin;
 fin;
define-nueva-instruccion orienta como inicio
si frente-libre y no junto-a-zumbador entonces     inicio
avanza;
 orienta;
 deja-zumbador;
fin;
 si frente-bloqueado y no junto-a-zumbador entonces inicio
 si (izquierda-bloqueada y no junto-a-zumbador) y derecha-libre entonces inicio
   gira(3);
   orienta;
   repetir 3 veces deja-zumbador;
 fin;
 si (izquierda-libre y no junto-a-zumbador) y derecha-bloqueada entonces inicio
  gira-izquierda;
  orienta;
  deja-zumbador;
 fin;
 si ((frente-bloqueado y derecha-bloqueada) y izquierda-bloqueada) y no junto-a-zumbador entonces inicio
     repetir 2 veces gira-izquierda;
     orienta;
     repetir 2 veces deja-zumbador;
 fin;
fin;
fin;
    inicia-ejecucion
   mientras no junto-a-zumbador hacer inicio
   orienta;
    fin;
    coge-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
