Evaluación de competencias 5
-
Reforzar los conocimientos de los métodos de búsquedas por adversarios, en particular el algoritmo Minimax con poda
$\alpha$ -$\beta$ en su versión para dos jugadores por turnos. -
Desarrollar habilidades para establecer heurísticas de ordenamiento de jugadas con el fin de reducr los tiempos de búsqueda.
-
Desarrollar habilidades y conocimientos para establecer medidas de estimación de utilidad, al aprender a generar funciones de características y establecer pesos entre estos. Aplicarlo a dos juegos (conecta 4 y Ultimate Tic-Tac-Toe)
-
Desarrollar un juego simple (Othello) con motor de IA desde cero.
Adicionalmente, en los programas se intenta mostrar un estilo de programación más orientado al paradigma funcional.
Si bien se proporcionan las herramientas y ejemplos necesarios para comprender los rudimentos básicos de programación de interfases en TCL, de ninguna manera se considera como un conocimiento práctico adicional que se espera reforzar con la tarea.
-
En el archivo
busqueda_adversarios.py
se ofrecen clases para juego de tablero por turnos. Revisa el código y procura entender a grandes razgos como funciona. El archivotictactoe.py
es un ejemplo de uso sencillo con el juego del gato. Es importante aclarar que este es un ejemplo con fines didácticos y toda posible optimización en tiempo o uso dememoria se evitó siempre que eso implicara obscurecer el proceso de búsqueda con adversarios, por lo que el entorno es bastante ineficiente en estos términos. -
En el archivo
conecta4.py
se incluye el juego de conecta 4, el cual es bastante conocido, y si quieres información de como se juega la puedes consultar aqui. En el archivo se ofrece el juego programado. Dentro del metodo hay dos funciones muy malas que impactan mucho en la calidad del juego:ordena_jugadas
yutilidad_c4
. Desarrolla tu propias funciones con el fin de lograr mejores búsquedas a mayor profundidad (20 puntos). -
En el archivo
ultimate_tictactoe.py
se incluye el juego de Ùltimate Tic-Tac-Toeo
Meta Gato`. Este juego por el momento se juega entre dos usuarios porque no cuenta ni con función de utilidad, ni con heurísticas que le permitan al minimax jugar eficientemente. Agrega función de utilidad y heurísticas para que se pueda jugar contra la computadora, y luego modifica la interfaz gráfica (20 puntos). -
El archivo
othello.py
es un archivo completamente en blanco. Desarrolla todo lo necesario para un juego de Othello. Todas las decisiones son tuyas. No importa que juegue lento, pero que el ordenamiento y las funciones de utilidad hagan que jugar contra el motor de IA sea muy dificil de ganar (60 puntos).