iniciar-programa
   define-nueva-instruccion norte como inicio
      mientras no-orientado-al-norte hacer inicio
        gira-izquierda;
      fin;
    fin;

    define-nueva-instruccion sur como inicio
      mientras no-orientado-al-sur hacer inicio
        gira-izquierda;
      fin;
    fin;

    define-nueva-instruccion este como inicio
      mientras no-orientado-al-este hacer inicio
        gira-izquierda;
      fin;
    fin;

    define-nueva-instruccion oeste como inicio
      mientras no-orientado-al-oeste hacer inicio
        gira-izquierda;
      fin;
    fin;

   define-nueva-instruccion gira-derecha como inicio
       gira-izquierda;
       gira-izquierda;
       gira-izquierda;
     fin;

    define-nueva-instruccion orientar como inicio
         mientras izquierda-libre hacer inicio
             gira-izquierda;
         fin;
     fin;

     define-nueva-instruccion ajusta como inicio
        si frente-bloqueado entonces inicio
         gira-derecha;
        fin;
          avanza;
          si izquierda-libre entonces inicio
               gira-izquierda;
               avanza;
          si izquierda-libre entonces inicio
               gira-izquierda;
               avanza;
              fin;
            fin;
          fin;

     define-nueva-instruccion marcar como inicio
         mientras no-junto-a-zumbador hacer inicio
            deja-zumbador;
            ajusta;
         fin;
     fin;

 define-nueva-instruccion checaSalida como inicio
     gira-derecha;
       mientras frente-libre hacer inicio
         avanza;
       fin;
     si junto-a-zumbador entonces inicio
      gira-izquierda;
      gira-izquierda;
        mientras frente-libre hacer inicio
          avanza;
        fin;
          gira-derecha;
       fin;
      fin;

    define-nueva-instruccion buscarSalida como inicio
        mientras junto-a-zumbador hacer inicio
           ajusta;
           checaSalida;
        fin;
     fin;

    define-nueva-instruccion ir1_1 como inicio
         si orientado-al-sur entonces inicio
           este;
            mientras frente-libre hacer inicio
              avanza;
            fin;
         fin;
         si orientado-al-este entonces inicio
           norte;
             mientras frente-libre hacer inicio
              avanza;
            fin;
         fin;
         si orientado-al-norte entonces inicio
            oeste;
             mientras frente-libre hacer inicio
               avanza;
             fin;
         fin;
         si orientado-al-oeste entonces inicio
           sur;
             mientras frente-libre hacer inicio
               avanza;
             fin;
         fin;
    fin;

    inicia-ejecucion
        orientar;
        marcar;
        buscarSalida;
        ir1_1;
        apagate;
    termina-ejecucion
finalizar-programa
