iniciar-programa

define-nueva-instruccion salta-2 como
inicio
mientras no-orientado-al-norte hacer
gira-izquierda;
mientras izquierda-bloqueada hacer
avanza;
gira-izquierda;
avanza;
mientras no-orientado-al-sur hacer
gira-izquierda;
mientras frente-libre hacer
avanza;
mientras no-orientado-al-oeste hacer
gira-izquierda;

fin;


define-nueva-instruccion salta como
inicio
mientras no-orientado-al-norte hacer
gira-izquierda;
mientras derecha-bloqueada y frente-libre hacer
avanza;
si derecha-libre entonces
inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
avanza;
gira-izquierda;
gira-izquierda;
gira-izquierda;
mientras frente-libre hacer
avanza;
gira-izquierda;
fin;
     si frente-bloqueado y orientado-al-norte entonces
    inicio
    mientras no-orientado-al-sur hacer
    gira-izquierda;
    mientras frente-libre hacer
    avanza;
    mientras no-orientado-al-oeste hacer
    gira-izquierda;
    fin;
fin;


define-nueva-instruccion cuenta como
inicio
    si orientado-al-este entonces
    inicio
        si orientado-al-este entonces
        inicio
        si frente-libre entonces
            inicio
            avanza;
            fin
            sino
            inicio
            salta
            fin;
         fin;
        si orientado-al-este entonces
        inicio
            si frente-libre entonces
            inicio
            avanza;
            cuenta;
                si frente-libre entonces
                inicio
                avanza;
                fin
                sino
                inicio
                salta-2;
                fin;

            fin
            sino
            inicio
            salta;
            cuenta;
                si frente-libre entonces
                inicio
                avanza;
                fin
                sino
                inicio
                salta-2;
                fin;

            fin;
            fin;
    fin
    sino
    inicio
    mientras no-orientado-al-oeste hacer
    gira-izquierda;
    fin;
fin;



    inicia-ejecucion
    mientras no-orientado-al-este hacer
    gira-izquierda;
    cuenta;
        apagate;
    termina-ejecucion
finalizar-programa
 