iniciar-programa
 define-nueva-instruccion gira(e) como inicio
   repetir e veces gira-izquierda;
 fin;

 define-nueva-instruccion saltaAlEste como inicio
     mientras no orientado-al-norte hacer gira-izquierda;
     mientras derecha-bloqueada y frente-libre hacer avanza ;
      si derecha-libre entonces inicio
              gira(3);
               avanza;
               gira(3);
               mientras frente-libre hacer avanza;
               gira(1);
      fin sino inicio
            mientras no orientado-al-sur hacer gira-izquierda;
             mientras frente-libre hacer avanza;

      fin;
 fin;
 define-nueva-instruccion salta como inicio
  mientras no orientado-al-norte hacer gira-izquierda;
      mientras izquierda-bloqueada y frente-libre hacer avanza ;
      si izquierda-libre entonces inicio
              gira(1);
               avanza;
               gira(1);
               mientras frente-libre hacer avanza;
               gira(3);
      fin;
 fin;
 define-nueva-instruccion encuentro como inicio
   si frente-libre entonces inicio
        avanza;
          si frente-libre entonces inicio
             avanza;
               encuentro;
           si frente-libre entonces avanza sino salta;
               fin sino inicio
                   saltaAlEste;
                    encuentro;
                    si frente-libre entonces avanza sino salta;
               fin;
   fin sino inicio
        si frente-bloqueado entonces inicio
               saltaAlEste;
               si frente-libre entonces avanza sino saltaAlEste;
           si no orientado-al-sur entonces inicio
           encuentro;
            si frente-libre entonces avanza sino salta;
           fin sino inicio
           mientras no orientado-al-oeste hacer gira-izquierda;
           sal-de-instruccion;
           fin;
        fin;
   fin;
 fin;
    inicia-ejecucion
    mientras no orientado-al-este hacer gira-izquierdA;
    encuentro;
        apagate;
    termina-ejecucion
finalizar-programa
