iniciar-programa
define-nueva-instruccion media-vuelta como repetir 2 veces gira-izquierda;
define-nueva-instruccion gira-derecha como repetir 3 veces gira-izquierda;

define-nueva-instruccion busca(n) como inicio
   si no junto-a-zumbador entonces inicio

   si frente-libre y orientado-al-este entonces inicio
   deja-zumbador; avanza;
   busca(n);
   media-vuelta; avanza; coge-zumbador; media-vuelta;
   fin
   sino inicio
   si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces inicio
   deja-zumbador;
   fin;
   fin;

   si derecha-libre y orientado-al-este entonces inicio
   gira-derecha;  deja-zumbador;
   avanza;
   busca(n);
   media-vuelta; avanza; coge-zumbador;gira-derecha;
   fin
   sino si izquierda-libre y orientado-al-sur entonces inicio
   gira-izquierda;
   busca(n);
   gira-derecha;
   fin;
   (*sino inicio
   si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces inicio
   deja-zumbador;
   fin;
   fin;   *)

   fin
   sino
   si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces  inicio
   deja-zumbador;
   fin;
   fin;

    inicia-ejecucion
mientras no orientado-al-este hacer gira-izquierda;
    busca(0);
         apagate;
    termina-ejecucion
finalizar-programa
