iniciar-programa
   define-nueva-instruccion derecha como inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
   fin;
   define-nueva-instruccion regresa como inicio
      gira-izquierda;
      gira-izquierda;
   fin;

    inicia-ejecucion
    mientras derecha-libre hacer inicio
    mientras frente-libre hacer inicio
       avanza;
    fin;
    derecha;
    mientras frente-libre y izquierda-bloqueada y orientado-al-este o junto-a-zumbador hacer inicio
       si junto-a-zumbador y derecha-libre entonces inicio
          regresa;
          mientras frente-libre hacer inicio
             avanza;
          fin;
          regresa;
          mientras frente-libre hacer inicio
             derecha;
             avanza;
             deja-zumbador;
             regresa;
             avanza;
             derecha;
             avanza;
          fin;
          derecha;
          avanza;
          deja-zumbador;
          gira-izquierda;
          si frente-libre entonces inicio
             avanza;
             gira-izquierda;

          fin
          sino inicio
             derecha;
             mientras frente-libre hacer inicio
                avanza;
             fin;
             gira-izquierda;
          fin;

         fin
         sino inicio
            si derecha-libre entonces inicio
               avanza;
            fin
            sino inicio
               regresa;
               avanza;
               avanza;
               derecha;
               avanza;
               gira-izquierda;
            fin;
         fin;

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