Proyecto 2: Juegos
Inteligencia Artificial
Departamento de Ingeniería de Sistemas e Industrial
Universidad Nacional de Colombia
Entrega: Abril 19 de 2004
Profesor: Ing. Fabio González
El propósito es implementar un agente inteligente que juegue
al 5
en línea. Las reglas del juego son las siguientes:
- Se juega en un tablero de 8x8 con fichas de 2 colores diferentes.
- Cada jugador pone una ficha de manera alternativa en el tablero.
Las
fichas permanecen en la posición donde fueron puestas
inicialmente
hasta el final del juego.
- El primer jugador en formar una línea de cinco de sus
propias fichas
consecutivas es el ganador. Las líneas pueden ser horizontales,
verticales
o diagonales.
Desarrolle los siguientes puntos:
- Cuál es el tamaño del espacio de estados posibles
del tablero?
- Cuál es el número de nodos de un árbol
minimax completo? Cuántos nodos
internos tiene? Cuántos nodos terminales?
- Desarrolle una función de evaluación que le permita
estimar la utilidad
de un nodo interno. Explique detalladamente la motivación de
cada
uno de los elemento de esta función.
- Desarrolle un criterio de cutoff que prevenga al
algoritmo
de llegar hasta los nodos terminales.
- Implemente el agente basado en la función y el criterio de
los 2 anteriores
puntos. Use el código disponible aquí
(la versión de la
librería fue actualizada el 19 de
Abril, por favor usar la última versión) como base
para
su agente (las instruciones para usarlo se encuentran al
final de este documento). Explique brevemente
la estructura de su programa.
- Experimente para determinar el número de jugadas a evaluar
hacia adelante,
de manera que el agente no tome más de 5 segundos
por jugada.
Muestre y analice los resultados.
- Pruebe el agente contra si mismo y analice los resultados.
- Puede mejorar la función de evaluación?
Se debe entregar:
Un disquete o CD con:
- un documento en HTML con los anteriores puntos debidamente
desarrollados,
- el código fuente debidamente documentado,
- el programa ejecutable.
Instrucciones para la ejecución del programa de prueba:
- Revise la documentación
del código.
- Descomprima el archivo cincoenlinea.zip
- En una consola, cambie al directorio cincoenlinea
- Ejecute el servidor:
java linea5.ServidorGUI
- Ejecute los clientes. Para cada cliente haga lo siguiente:
- abra una consola nueva y cambie al directorio cincoenlinea
- ejecute:
java linea5.Client localhost nombre
- Use un nombre diferente para cada cliente
- Si el servidor se encuentra en un computador diferente, use
la dirección
correspondiente en vez de localhost
- En la GUI del servidor haga los siguiente:
- Seleccione el primer jugador
- Seleccione el segundo jugador
- Presione el botón comenzar
- Presione el botón jugar sucesivamente hasta
terminar el juego