iniciar-programa

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

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 orienta 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 Checa-Salida 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;
        Checa-Salida;
     fin;
fin;

define-nueva-instruccion Ir11 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
      orienta;
      marcar;
      BuscarSalida;
      Ir11;
      apagate;
    termina-ejecucion
finalizar-programa
 