2 niveles son muy pocos sip, pero parece que algunos móviles no pueden con más. Además estamos hablando de Java y encima J2ME.
El juego es de tipo ataxx, la funcion de evaluación es simple, (fichas_negras - fichas_blancas).
No ordeno porque me cuesta más la ordenación que lo que me pueda ahorrar. Además no se muy bien el criterio a la hora de ordenar, he utilizado la propia función de evaluación, los movimientos con más puntuación examinarlos primero pero me resulta ineficiente.
El problema creo que es que en cada turno hay demasiados posibles movimientos, unos 20 o 30 de media en este tipo de juego con el tablero que uso (9x9). Aunque ahora que lo pienso si sólo uso dos niveles serían un total de 400 a 900 posibles movimientos, no me parecen muchos para que tarde tanto, y eso sin contar la poda... no se, no se, creo que el problema puede ser la velocidad del móvil y la torpeza de Java.
Hay que tener en cuenta que cada vez que busca un nuevo movimiento tiene que:
- Mirar todos los posibles movimientos (esto tarda un pelin porque hay que recorrer el tablero y mirar las posibilidades de cada ficha)
- Crear un tablero nuevo a partir del original lo que significa hacer una copia de arrays.
- Aplicar cada movimiento a dicho tablero y llamar recursivamente
No se, de todas formas Warchief si me puedes pasar los códigos te lo agradecería por si estoy haciendo algo mal.