En el juego de restar cuadrados, dos jugadores juegan por turno restando cuadrados de números de una cantidad inicial, elegida al azar entre 10 y 1000. El siguiente turno partirá de la cantidad resultante de restar el cuadrado elegido a la cantidad, y así sucesivamente.
Por ejemplo, si la cantidad elegida es 17 y juega MAX, éste tendrá cuatro movimientos posibles: restar 4*4, quedando 1, restar 3*3, quedando 8, restar 2*2, quedando 13, o restar 1*1, quedando 16.
MAX y MIN juegan por turno y pierde el que no pueda realizar más movimientos, es decir, cuando la cantidad sea igual a 0.
Ejemplos de partida, partiendo de 13 y jugando MAX:
Partida 1:
MAX juega 2*2, quedan 9
MIN juega 3*3, MAX pierde
Partida 2:
MAX juega 1*1, quedan 12
MIN juega 3*3, quedan 3
MAX juega 1*1, quedan 2
MIN juega 1*1, queda 1
MAX juega 1*1, MIN pierde
El objetivo de la práctica es implementar el algoritmo MINIMAX y aplicarlo al juego propuesto, definiendo varias heurísticas y probándolas en diferentes condiciones hasta decidir cuál es la que mejor funciona para garantizar la victoria de MAX. Como parámetro de ejecución se deberá pasar el nivel de profundidad del árbol a generar.
Opcionalmente, para optar a la máxima calificación, puede implementarse la poda alfa-beta y permitir entonces valores iniciales entre 10 y 10000.
Interesante! podrias compartir el codigo fuente para ver el algoritmo MINIMAX y las heuristicas? gracias
tuboachu 2 years ago