Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto
Tres en Raya
Grupo 2
Integrantes:
● Alberto Miranda Anderson Leandro
● Artadi Ruiz, Gonzalo Joaquín
● Chávez Malca, Emerzon José
● Martinez Bravo, Martín AarónV
● Vallejo Pablo, Nilo Brayan
-2020-
Índice:
“Universidad Nacional Mayor de San Marcos”
1. Objetivos del proyecto: 3
2. Descripción del proyecto: 3
3. Requerimientos funcionales: 3
4. Alcances y limitaciones del proyecto: 3
Alcances 3
Limitaciones 4
5. Diagrama de clases: 5
Minimax es un método de decisión para minimizar la pérdida máxima esperada en juegos con
adversario y con información perfecta. Se trata de una técnica simple, pero limitada a
problemas sencillos.
Se pretende crear un programa funcional y que mediante la lectura de este documento permita
entender el funcionamiento del algoritmo mencionado a cualquier estudiante universitario.
3. Requerimientos funcionales:
- El juego tendrá la opción de jugar 1vsPC (contra la máquina).
- El ganador de la partida será quien logre alinear 3 elementos del mismo tipo de forma
horizontal, vertical o diagonal.
- El juego permitirá modificar el tipo de ficha usada por cada jugador.
- El juego tendrá la opción de modificar la apariencia del tablero de juego.
- El juego permitirá al usuario seleccionar el nivel de dificultad en el modo 1 vs PC
(contra la máquina).
B. Limitaciones
- No se pretende crear una versión web del juego.
- El proyecto se centrará en el enfoque de eficiencia y dejará al segundo plano el
estético.
“Universidad Nacional Mayor de San Marcos”
- El desarrollo se llevará a cabo por estudiantes con poca experiencia en desarrollo de
juegos.
- Solo implementaremos el uso de mouse en la interfaz. El teclado no podrá usarse para
jugar.
- No se pretende crear un modo tutorial dentro del juego, además de ser intuitivo
contará con un manual de usuario.
5. Diagrama de clases:
“Universidad Nacional Mayor de San Marcos”
Objetivo Posee todas las acciones y reglas del juego 3 en raya. Mas no se encarga de jugar.
Humano: int Valor usado para representar los lugares donde jugó el humano
en el tablero
Oponente: int Valor usado para representar los lugares donde jugó el
oponente en el tablero.
IA
TableroJuego
“Universidad Nacional Mayor de San Marcos”
Objetivo Interfaz gráfica de usuario (GUI) que muestra el tablero y las acciones tomadas por
los jugadores.
gameOver(): void Muestra los resultados una vez que el juego finaliza
MenuJuego
Modo
Objetivo Interfaz gráfica de usuario (GUI) que sirve para elegir la dificultad
Opcion
Objetivo Interfaz gráfica de usuario (GUI) que sirve para cambiar características estéticas del
trabajo
Algoritmo Minimax
❖ Algoritmo de decisión para minimizar la pérdida máxima aplicada en juegos de
adversarios
❖ Información completa (cada jugador conoce el estado del otro)
❖ Elección del mejor movimiento para cada jugador, suponiendo que el contrincante
escogerá el peor
❖ El espacio de estados se representa mediante árboles alternados, donde:
➔ Nodo: Representa una situación del juego
➔ Sucesores de un nodo: Situaciones del juego a las que se accede por
movimientos legales aplicando sus reglas
➔ Nivel: Contiene todas las situaciones posibles para uno de los jugadores
❖ El algoritmo explorará los nodos del árbol asignándoles un valor numérico mediante
una función de utilidad, empezando por los nodos terminales y subiendo hacia la raíz.
❖ Colocar 0 ó 1 en los nodos terminales dependiendo si gana MIN o MAX
❖ El maximizador:
➔ Puede esperar llegar a un valor de 8
➔ Sabe que el minimizador puede escoger un movimiento que lo lleve a un valor
de 1
“Universidad Nacional Mayor de San Marcos”
❖ Desde el punto de vista de el maximizador, el minimizador puede escoger 2 ó 1
❖ Los resultados de un nivel determinan la acción y el resultado del nivel inmediato
superior.
❖ Omitir la expansión de nodos que por sus valores no pueden ser los mejores (peores).
❖ Interrumpe la búsqueda en algún nivel y aplica evaluaciones heurísticas a las hojas
(profundidad limitada)
❖ Si el valor del nodo MAX (alfa) es menor que el más alto hasta este momento,
entonces omitir nodo.
❖ SI el valor del nodo MIN (beta) es mayor que el nodo más bajo hasta el momento,
entonces omitir nodo.
❖ Alfa-Beta permite búsqueda dos veces más profunda.
❖ Ordenamiento de los operadores, resultante del conocimiento o experiencia.
❖ Únicamente importa el orden y no los valores exactos.
❖ La poda no afecta al resultado final.
❖ Alfa-Beta es una mejora del algoritmo Minimax que evita revisar porciones dominadas del
árbol, que no pueden proveer información útil sobre la jugada siguiente.
❖ Alfa-Beta es un algoritmo de búsqueda en profundidad, rama y cota, que avanza por el
árbol en un orden ya fijado (p.ej., de izquierda a derecha) y va usando la información
de la valuación de los nodos hoja para podar ramas dominadas que no sirven para cambiar el
valor Minimax del nodo inicio (la jugada inminente).
“Universidad Nacional Mayor de San Marcos”
Estructuras de datos
Alfa es el nombre del mejor valor m, para MAX, encontrado hasta ahora en su ruta de búsqueda
en un nivel de MIN.
➔ Si n es peor que Alfa, MAX lo evitará ⇒ podar esa rama punteada
➔ m y n son nodos de MIN
❖ Alfa-Beta busca solamente 3/4b de los b movimientos posibles desde una posición dada
de juego.
❖ Esto significa que la profundidad de búsqueda se puede incrementar por un factor = log
b / log b ~= 4/3 por encima de una búsqueda exhaustiva Minimax.
❖ B es aquí el factor de ramificación efectivo.
❖ Si los sucesores se ordenan a la perfección (definido como que al usar Alfa-Beta la
búsqueda es mínima), Alfa-Beta examina 2bd/2 - 1 posiciones de juego.
❖ Así tenemos
Introducción:
El juego “Tic - Tac - Toe Game” tiene como finalidad entretener a sus usuarios y fomentar en ellos la
desesperación, pues en el modo difícil jamás podrán vencer al árbol de decisiones implementado.
Requisitos previos
Para ejecutar el juego “Tic - Tac - Toe Game” en su ordenador, usted deberá tener instalada la última
versión de java.
Caracter PC
Con este botón podrá asignarle un caracter que desee al ordenador. Si no configura este botón verá
que por defecto el caracter de PC es O.
A continuación verá el resultado tras modificar el caracter de PC.
“Universidad Nacional Mayor de San Marcos”
Caracter Humano
Con este botón podrá asignar un caracter que desee para usted. Si no configura este botón verá que
por defecto el caracter de PC es X.
A continuación verá el resultado tras modificar el caracter humano.
“Universidad Nacional Mayor de San Marcos”
.Cambiar Fondo
Este botón le permitirá cambiar el fondo a color blanco. Por defecto el fondo es negro, como ya se ha
visto anteriormente. Si desea pasar de fondo blanco a negro tan solo deberá volver a presionar el
botón.
A continuación verá la pantalla de juego resultante, obtenida tras presionar el botón y cambiar a fondo
blanco.
“Universidad Nacional Mayor de San Marcos”
9. Conclusiones y recomendaciones:
Como se mencionó en la introducción del presente trabajo, el estudio se desarrolló según los
objetivos planeados. Por lo tanto, ahora es importante extraer conclusiones sobre el proyecto
realizado y finalizar con algunas recomendaciones, que constituyan un valor añadido para el
desarrollo del trabajo realizado.
Por tanto, la implementación del proyecto permite al equipo llegar a las siguientes conclusiones:
Debido a la magnitud del producto y el tiempo del que se disponía, optar por el algoritmo minimax
fue la decisión acertada, puesto que muestra eficiencia en respuesta, además de que su complejidad
algorítmica es menor que la de otros algoritmos. Por otra parte, su implantación resultó conveniente
para el equipo al no representar complicaciones ni dificultad mayor a la esperada.
También se concluye que el proyecto ha cumplido con su función principal, al convertirse en el reto
necesario para poner en práctica los conocimientos aprendidos, y sirve como base para los que se
dedicarán a la rama de IA.
“Universidad Nacional Mayor de San Marcos”
Las recomendaciones que brinda el equipo de desarrollos se muestran a continuación:
Gestionar las entregar de los miembros del equipo es fundamental para conseguir los resultados
esperados, más aún en cuestiones relacionadas con la programación remota, esto también debe incluir
el apoyo necesario para los miembros que tengan dificultades en el desarrollo de la parte que les fue
encomendada.
Finalmente, y hablando de una etapa de presentación, se recomienda reforzar la parte estética visual
del programa, debido a la importancia que representa en un proyecto tan interesante como lo es el 3 en
raya. Este podría incluir aún más interfaces para hacer la experiencia del usuario más cómoda, además
de funcionalidades adicionales como su ingreso a la web.
Alkaraz, S. H., El-Seidy, E., & Morcos, N. S. (2020). Tic-Tac-Toe: Understanding the
Minimax Algorithm. Journal of Game Theory, 9(1), 1-7.
Sebastian Lague .(2018, Abril 28). Algorithms Explained – minimax and alpha-beta pruning
[archivo de video]. Recuperado de https://www.youtube.com/watch?v=l-hh51ncgDI
Villacís, C., Fuertes, W., Bustamante, C., Zambrano, M., Torres, E., Aules, H., Tacuri, A., &
Basurto, M. (2014). Optimización del juego tres en raya con niveles de dificultad utilizando
heurísticas de inteligencia artificial. AtoZ: novas práticas em informação e conhecimento, 3(2), 95-
106. doi:http://dx.doi.org/10.5380/atoz.v3i2.41342
José Luis Iglesias Feria.[Descubriendo la Inteligencia Artificial]. (2016, Octubre 21). Nº 112:
IA Grafos - Poda Alfa-Beta (MiniMax). [archivo de video]. Recuperado de
https://www.youtube.com/watch?v=jYm8eU-N2MA
The Coding Train. (2019, Diciembre 21). Coding Challenge 154: Tic Tac Toe AI with
Minimax Algorithm. [archivo de video]. Recuperado de https://www.youtube.com/watch?
v=trKjYdBASyQ
“Universidad Nacional Mayor de San Marcos”