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: Desarrolle los siguientes puntos:
  1. Cuál es el tamaño del espacio de estados posibles del tablero?
  2. Cuál es el número de nodos de un árbol minimax completo? Cuántos nodos internos tiene? Cuántos nodos terminales?
  3. 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.
  4. Desarrolle un criterio de cutoff que prevenga al algoritmo de llegar hasta los nodos terminales.
  5. 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.
  6. 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.
  7. Pruebe el agente contra si mismo y analice los resultados.
  8. Puede mejorar la función de evaluación?
Se debe entregar:

Un disquete o CD con:




Instrucciones para la ejecución del programa de prueba:
  1. Revise la documentación del código.
  2. Descomprima el archivo cincoenlinea.zip
  3. En una consola, cambie al directorio cincoenlinea
  4. Ejecute el servidor:

    java linea5.ServidorGUI

  5. Ejecute los clientes. Para cada cliente haga lo siguiente:
    1. abra una consola nueva y cambie al directorio cincoenlinea
    2. ejecute:

      java linea5.Client localhost nombre

    3. Use un nombre diferente para cada cliente
    4. Si el servidor se encuentra en un computador diferente, use la dirección correspondiente en vez de localhost
  6. En la GUI del servidor haga los siguiente:
    1. Seleccione el primer jugador
    2. Seleccione el segundo jugador
    3. Presione el botón comenzar
    4. Presione el botón jugar sucesivamente hasta terminar el juego