lunes, 27 de octubre de 2014

Tic-Tac-Toe



Título: Tic-Tac-Toe (Tres en Raya)
Versión: 1.0
Tipo: Juego
Idioma: English
Año: 2013
Formato: .py
Tamaño: 698 KB
Servidor: Dropbox

Herramientas necesarias: Python 2.7.x & PyGame 1.9.x


Durante la asignatura Artificial Intelligence for Videogames que realicé en la universidad, se me ocurrió llevar a cabo una pequeña puesta a prueba de las recien adquiridas técnicas de inteligencia artificial que aprendí para comprobar el comportamiento de diferentes algoritmos en problemas concretos. Nació así ésta versión del famoso juego Tic-Tac-Toe (Tres en Raya en castellano).

Su desarrollo se llevó a cabo usando Python y PyGame, por su comodidad a la hora de realizar estos pequeños proyectos. La aplicación es compatible con los sistemas Windows y Linux.

La implementación está dividida en 3 ficheros:

tic-tac-toe.py: es el fichero principal y el que se debe ejecutar. Carga todos los recursos gráficos a usar así como el bucle principal del juego para configurar una partida nueva.

game.py: este fichero es el encargado de "jugar". Carga los jugadores (ya sean humanos o IA), los turnos, etc.

aiplayer.py: este fichero tiene las funciones de inteligencia artificial para cada uno de los jugadores IA. Si se desea alterar el funcionamiento de un jugador, basta con modificar la función correspondiente al jugador deseado (tienen de nombre __cpuHard(), __cpuEasy(), __cpuMedium()). La otra función importante es makeMove(gameTable), que es la que se lanza cuando le toca a un jugador IA. Recomiendo no tocar esta última y solo editar las otras mencionadas.

En cuanto al juego en si, al iniciarlo aparecerá el menú principal, donde podemos escoger el modo de juego:


PvP: player vs. player. Perfecto para partidas humano contra humano. El jugador 1 será el de la izquierda y tendrá como ficha las rojas (cruces:X). El jugador 2 estará situado a la derecha y tendrá las fichas azules (circulos:O). El turno inicial será escogido aleatoriamente, indicándose con una franja verde en la zona superior:

PvC: player vs. computer. Partida humano contra máquina. El jugador humano siempre será el jugador 1 y la máquina el 2. El turno será escogido aleatoriamente y la dificultad de la máquina la decidirá el jugador antes de iniciar la partida.

CvC: computer vs. computer. Partida máquina contra máquina. Este modo permite analizar el comportamiento de una IA contra otra IA. Primero se seleccionará la dificultad de cada una y a continuación se lanzarán a la batalla. Comenzará el turno de manera aleatoria también.


Las IAs disponibles son representadas con avatares de robots. Cada una utiliza una función de inteligencia diferente:

Deep Blue: implementa una funciona aleatoria.

Blender: implementa una función heurística sencilla.
EDI: implementa una función heurística algo más compleja, pero no es imposible de vencer.






Mínimos:
Cualquier S.O. es válido si tiene:
-Python 2.7.x (32 bits)
-Librerías PyGame para Python 2.7.x (32bits)






Post creado con Forum Post Generator.

No hay comentarios:

Publicar un comentario