iniciar-programa
   define-nueva-instruccion derecha como inicio
      gira-izquierda;
      gira-izquierda;
      gira-izquierda;
   fin;
   define-nueva-instruccion pasos(x)como inicio
      mientras no-orientado-al-norte hacer inicio
         si frente-libre entonces inicio
            avanza;
            si derecha-bloqueada y izquierda-bloqueada y orientado-al-sur entonces
               pasos(sucede(x));
            si izquierda-libre y no-orientado-al-norte entonces inicio
               gira-izquierda;
               mientras frente-libre hacer
                  avanza;
                  derecha;
            fin;
            si frente-bloqueado y no-orientado-al-norte entonces inicio
               si izquierda-bloqueada entonces inicio
                  derecha;
                  mientras izquierda-bloqueada y frente-libre hacer inicio
                     avanza;
                  fin;
                  si izquierda-libre entonces
                     gira-izquierda
                  sino  inicio
                     derecha;
                     repetir x veces
                        deja-zumbador;
                  fin;
               fin
               sino inicio
                  gira-izquierda;
                  mientras frente-libre y izquierda-bloqueada hacer
                     avanza;
                  derecha;
               fin;
            fin;
         fin
         sino inicio
            derecha;
            mientras izquierda-bloqueada hacer
               avanza;
            gira-izquierda;   
         fin;
      fin;

   fin;
    inicia-ejecucion
       gira-izquierda;
       mientras frente-libre hacer
          avanza;
       derecha;
       pasos(0);
        apagate;
    termina-ejecucion
finalizar-programa
