hecoding/Pac-Man

GrammaticalAdapterControler flow bug

J-888 opened this issue · 3 comments

J-888 commented

No se está gestionando correctamente el funcionamiento de los condicionales:
Por ejemplo no se incrementa el índice para saltar en caso de no tomar un condicional

Está ya una chapucilla lista para saltar cadenas de ifs si estan dentro de un if que no se toma (Funcion skipifs)

Sigue estando el problema del stack overflow al coger como movimiento lo que haya tras el if no tomado, es decir, al "hacer el else", en vez de retornar movimiento neutral.

J-888 commented

El bug es debido a situaciones en las que el fenotipo solo contiene instrucciones condicionales, saltandose de forma recurrente una y otra vez. Ejemplo: "?PH"

El bug se puede solucionar con el siguiente bloque de codigo añadido al inicio de la funcion getMovimiento:

public MOVE getMove(Game game, long timeDue) {

    if ((double)fenotipo.length()/3 <= StringUtils.countMatches(fenotipo, "?")) {
        return MOVE.NEUTRAL;
    }

    [...]
}

Adicionalmente, para mejorar el tiempo de ejecucion se podrian usar booleanos a partir de la primera comprobacion

J-888 commented

Codigo anteriormente mencionado añadido