iniciar-programa
define-nueva-instruccion gira-derecha como repetir 3 veces gira-izquierda;
define-nueva-instruccion regresa como repetir 2 veces gira-izquierda;
define-nueva-instruccion ve-al-inicio como inicio
 mientras frente-libre hacer avanza;
        si izquierda-libre y derecha-libre entonces inicio
        gira-derecha;
        mientras frente-libre hacer avanza;
        fin;
        si izquierda-bloqueada y frente-bloqueado y orientado-al-norte entonces inicio
        regresa;
        mientras frente-libre hacer avanza;
        fin;
        si izquierda-bloqueada y frente-bloqueado y orientado-al-este entonces inicio
        gira-derecha;
        mientras frente-libre hacer avanza;
        fin;
        si izquierda-bloqueada y frente-bloqueado y orientado-al-sur entonces inicio
        gira-derecha;
        mientras frente-libre hacer avanza;
        fin;
        si orientado-al-oeste y frente-bloqueado y izquierda-bloqueada entonces gira-derecha;
        si orientado-al-sur entonces regresa;
fin;
   inicia-ejecucion
   ve-al-inicio;
   si no-junto-a-zumbador entonces deja-zumbador;
       mientras orientado-al-norte hacer inicio

           si junto-a-zumbador entonces inicio
               si derecha-libre entonces inicio
               gira-derecha;
               avanza;
               si izquierda-libre entonces gira-izquierda;
               avanza;
               fin;
           si no-junto-a-zumbador entonces deja-zumbador;
           fin;
           si frente-bloqueado y derecha-bloqueada y orientado-al-norte entonces inicio
           gira-izquierda;
           mientras frente-libre hacer avanza;
           gira-izquierda;
           fin;
       fin;
       mientras no-junto-a-zumbador y orientado-al-sur hacer inicio
           si no-junto-a-zumbador entonces inicio
           deja-zumbador;
               si izquierda-libre entonces inicio
               gira-izquierda;
               avanza;
               si derecha-libre entonces gira-derecha;
               avanza;
               fin;
           fin;
           si junto-a-zumbador y frente-libre y izquierda-libre entonces inicio
           si izquierda-libre entonces gira-izquierda;
           avanza;
           si derecha-libre entonces gira-derecha;
           avanza;
           fin;
       fin;
        apagate;
    termina-ejecucion
finalizar-programa
