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



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



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



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



    define-nueva-instruccion orientate como inicio
       derecha;
       mientras frente-libre hacer inicio
          avanza;
       fin;
    fin;



    define-nueva-instruccion baja como inicio
       izquierda;
       mientras frente-libre hacer inicio
           avanza;
       fin;
       derecha;
       mientras frente-libre y izquierda-bloqueada  hacer inicio
           avanza;
       fin;
       si izquierda-bloqueada entonces inicio
           frente;
       fin
       sino inicio
           abajo;
           avanza;
       fin;
    fin;



    define-nueva-instruccion uno como inicio
       si no-orientado-al-norte entonces inicio
          si izquierda-bloqueada y derecha-bloqueada entonces inicio
              baja;
              uno;
              deja-zumbador;
          fin
          sino inicio
              baja;
              uno;
          fin;
       fin
       sino inicio
           orientate;
       fin;
    fin;


    define-nueva-instruccion travesia-escolar como inicio
        si orientado-al-sur entonces inicio
            repetir 4 veces inicio
                gira-izquierda;
            fin;
            uno;
        fin;
    fin;



    inicia-ejecucion
        travesia-escolar;
        apagate;
    termina-ejecucion
finalizar-programa

