You are on page 1of 4

Universidad de Guanajuato. Computación Flexible Práctica No.

1: Solución con IA del juego del gato


.

DESARROLLO DE UN ALGORITMO PARA LA INTELIGENCIA


ARTIFICIAL EN EL JUEGO DEL GATO
Martínez Rodríguez Edgar Daniel
e-mail: ing.edgardmr@gmail.com
Ortiz López Carlos Armando
e-mail: carlos_aol@hotmail.com
Ramírez Echeverría Felipe de Jesús
e-mail: felipe_jramirez@yahoo.com.mx

RESUMEN: Se desarrolla e implementa un Después de observar el juego del gato se observo


algoritmo para la IA en el juego del gato utilizando el que solo existen 3 inicios posibles, tirar al centro, tirar en
lenguaje de programación C. Se muestra la metodología una esquina o tirar en una orilla, como se muestra en la
seguida para el desarrollo del algoritmo así como una Figura 1.
estadística de cuantos juegos la computadora gano
contra un jugador real. Por último se presenta el análisis
y discusión de los resultados obtenidos.

PALABRAS CLAVE: Juego del gato, Inteligencia


artificial, algoritmo, lenguaje de programación C.

1 INTRODUCCIÓN (a) (b) (c)


Figura 1. Jugadas iníciales posibles. (a) centro. (b) esquina.
La inteligencia artificial es una de las ramas de la (c) orilla
computación que busca entender los principios que
permiten la inteligencia y el desarrollo de sistemas El resto de los tiros son solo rotaciones de estas
inteligentes hechos por el hombre [1]. Los avances de opciones, con esto en mente se busco la mejor manera
esta rama han permitido el desarrollo de sistemas como de responder a cada uno de estos tiros para no perder,
el Deep Blue y del nacimiento de nuevas ramas de la en la Figura 2 se muestra las mejores respuestas a
computación como el soft computing. estas jugadas iníciales. Para la opción a) la mejor
respuesta es una esquina mientras que en las opciones
En la presente práctica se presenta un problema, b) y c) la mejor respuesta es el centro, en opción c)
que sirve de introducción al campo de la inteligencia existen otras opciones validas para responder, pero para
artificial, para desarrollar el IA del juego del gato. reducir las opciones posteriores se decidió tirar siempre
al centro en este caso.
A pesar de la simplicidad del juego se observo
que implementar el algoritmo no resulto ser un proceso
tan fácil. Conociendo las reglas del juego primero se
analizo cuales son las jugadas necesarias para ganar el
juego, cual es la estrategia a utilizar si eres el primer
jugador o si eres el segundo jugador, si existe una
jugada inicial que le da ventaja al jugador actual,
identificar los movimientos que son legales y cuáles no,
como saber si el jugador perdió o gano. Conociendo (a) (b) (c)
estos datos se desarrollo un algoritmo y se implementa Figura 2. Mejores respuestas a las jugadas iníciales
usando el lenguaje C. respectivas

A partir de este punto resulta difícil determinar cuál


2 METODOLOGIA es la mejor opción para cada combinación ya que las
posibilidades son muy variadas, por eso es que se
Para poder crear un programa capaz de jugar al diseñaron una serie de reglas para determinar cual tiro
gato primero fue necesario entender cómo jugar al gato, es el mejor desde este punto, en general cualquier
hacer varios juegos y tratar de entender como decidimos persona que juega al gato siempre debe considerar lo
cual es la mejor opción, y desarrollar una estrategia que siguiente:
te permita nunca perder e incluso llegar a ganar si el otro
jugador tiene una mala estrategia. 1. Revisar si es posible ganar el juego y si lo es
ganar.

1
Universidad de Guanajuato. Computación Flexible Práctica No. 1: Solución con IA del juego del gato
.

2. Revisar si es posible perder el juego y si lo es indicar que jugador es y el regresara un numero que
bloquear esa opción. representa la casilla en que desea tirar.

3. Formar 2 en línea, de esta forma creas la 3 RESULTADOS


posibilidad de ganar en tu siguiente turno,
además de que restringes las opciones del
contrario. 3.1 INTERFAZ
4. Si no existe otra opción tirar en las casillas
libres Lo primero que se observa al ejecutar el archivo
gato.exe es el menú de opciones del juego. Lo primero
Cuando se creó la estrategia a seguir la parte que que se observa son las instrucciones, donde se indican
resulto más complicada fue la 3ra, debido a que en los las reglas del juego y el número al que le corresponde
primeros tiros existen muchas maneras de formar dos en cada casilla, como se muestran en la Figura 5.
línea, sin embargo hay que ser cuidadoso al elegir entre
ellas ya que si eliges de manera aleatoria o sin ninguna Instrucciones
otra restricción puedes llegar a perder el juego, después
de revisar las probabilidades se decidió buscar la casilla
de la siguiente manera:
Relación entre casillas y
números
1. Tratar de formar líneas horizontales o verticales
y dar preferencia a las casillas ubicadas en las
orillas, véase Figura 3a y 3b. Condición de triunfo
2. Tratar de formar diagonales, como se muestra
en la Figura 3c Figura 5. Instrucciones del archivo gato.exe
3. Verificar la esquina seleccionada tomando en
cuenta la distribución de los tiros enemigos, ya Lo siguiente que se observa es el menú de modos,
que de no hacerlo existen casos en los que hay 4 modalidades de juego:
puedes favorecer al rival, como se muestra en
la Figura 4. 1. Usuario vs Usuario.
2. CP vs Usuario (Primero tira la PC).
3. Usuario vs CP (Primero tira el usuario)
4. CP vs CP

El usuario elige una modalidad tecleando de 0 a 3


para seleccionar, cualquier otro valor o carácter es
inválido. En la Figura 6 se muestra como se ve.

(a) (b) (c)


Figura 3. (a) Formar líneas horizontales, (b) formar 0 para el modo 1
líneas verticales, (c) formar diagonales . 1 para el modo 2
2 para el modo 3
3 para el modo 4

Figura 6. Modos del archivo gato.exe

Al seleccionar uno de los modos nos aparece la


interfaz del juego del gato como se muestra en la Figura
7.
(a) (b)
Figura 4. Verificar la esquina seleccionada.

Estos son casos que aparecieron cuando se


Representación
revisaba el algoritmo de juego, para estos casos se
grafica
desarrollo una regla especial en la que se verifica que al
tirar la esquina opuesta no sea la que coincide con el Turno
reglón y la columna controladas por el segundo jugador.
Entrada
Se creó un algoritmo computacional que juga
basándose en estas reglas, debido a lo generales que Figura 7. Interfaz de juego del archivo gato.exe
son no fue necesario crear algoritmos independientes
para el jugador que empieza y para el que defiende, si Cuando uno de los dos jugadores gana o existe un
no que solo se creó un jugador virtual, al cual le debes empate, el mensaje aparece como se muestra en la

2
Universidad de Guanajuato. Computación Flexible Práctica No. 1: Solución con IA del juego del gato
.

Figura 8, por último se oprime ENTER para regresar al observo la posición de orilla no es elegida por que es
menú de inicio. una posición que pone en desventaja al software.
En la Figura 9 se muestra el desarrollo de tres
casos. Las letras representan el turno de las X donde el
Representación primer turno es representado por A, el segundo por B y
grafica así sucesivamente, para las O se usan números para
representar los turnos.
Estado del
juego C 5 C 4 1 C 4
X X X O O X O
Figura 8. Estado de juego del archivo gato.exe B A 2 3 1 D B A 2
X X O O O X X X O
3.2 PRUEBAS EN EL MODO 1 X
D
O
1
O
3
X
B
O
2
X
A
X
D
O
3
X
E

En el modo 1 se realizaron pruebas para verificar Gana IA Empate Empate


que el software sea capaz de enfrentarse a un jugador
humano, de la casilla inicial elegida por la IA se Figura 9. Desarrollo de 3 casos para modalidad 1.
respondía de la mejor manera posible. Los resultados de
la tabla se muestran en la tabla 1. Debido a que la IA empieza, tiene una gran ventaja
sobre el jugador. Como el algoritmo fue hecho para no
perder no se encontró ningún caso en el que la IA perdió
Tabla 1 solo se pudo empatar.

Jugador Partidas Partidas Partidas


Empate
inicial Jugadas ganadas perdidas 4.2 ANALISIS EN EL MODO 2
IA 100 76 24 0
Como se menciono en la metodología, en general
3.3 PRUEBAS EN EL MODO 2 solo existen 3 jugadas iníciales posibles, para el análisis
de este modo se muestran los pasos por turnos cuando
En este modo se inicio un primer tiro en cada una se inicia en cada uno de los casos posibles de inicio. En
de las casillas de la 1 a la 9 llegando a un total de 100 la Figura 10, Figura 11 y Figura 12 se muestra el
pruebas, se considero que en general solo existen 3 desarrollo del juego para los casos respectivos.
jugadas iníciales. Los resultados de las pruebas se
muestran en la tabla 2. A 2 B A E 3 A B 2
X O X X X O X X O
Tabla 2
3 1 D 2 1 C 3 1 D
O O X O O X O O X
Segundo Partidas Partidas Partidas
Empate E C 4 D B 4 C 4 E
jugador Jugadas ganadas perdidas X X O X X O X O X
IA 100 98 2 0
Empate! Empate! Empate!
Figura 10. Desarrollo del juego cuando se inicia en la
3.4 PRUEBAS EN EL MODO 3 esquina
Por último en el modo 3 la IA se enfrenta a ella
misma 100 veces. Los resultados de esta prueba se
muestran en la tabla 3. B A 2 2 A D 3 A
X X O O X X O X

Tabla 3 3 1 D B 1 4 2 1 C
O O X X O O O O X

Partidas Partidas Partidas C 4 E 3 E C 4 B D


Empate X O X O X X O X X
Jugadas ganadas perdidas
IA 100 100 0 0 Empate! Empate! Pierde usuario!
Figura 11. . Desarrollo del juego cuando se inicia en la
orilla
4 ANALISIS
4.1 ANALISIS EN EL MODO 1
En el caso en el que PC elige la primera posición
se observo que la IA prefiere la posición del centro ya
que esta le da ventaja sobre el jugador, también se

3
Universidad de Guanajuato. Computación Flexible Práctica No. 1: Solución con IA del juego del gato
.

1 D B E 3 B C 4 E
O X X X O X X O X
C A 3 D A 4 2 A B
X X O X X O O X X
2 4 E 2 C 1 1 D 3
O O X O X O O X O

Empate! Empate! Empate!


Figura 12. . Desarrollo del juego cuando se inicia en el
centro.

El perder o empatar es dependiente del segundo


tiro que realice el usuario, por ejemplo, en la tabla 10 en
el caso en el que el usuario pierde el primer tiro se hizo
en la casilla 2 y el segundo tiro se efectuó en la casilla 8.

4.3 ANALISIS EN EL MODO 3


El sistema es capaz de empatarse así mismo en
menos de una decima de segundo, se observo que de
las 100 ocasiones que se realizo la prueba solo se
obtuvo como resultado empate. Esto demuestra que el
algoritmo fue hecho para no perder.

5 DISCUSION

La IA del gato tiene una tendencia a bloquear para


evitar que el usuario gane cuando este inicia primero
(Modalidad 2), y tiene un comportamiento repetitivo por
lo que el usuario puede teclear una misma secuencia en
cada juego diferente y obtendrá siempre el mismo
resultado excepto cuando el primer tiro efectuado por el
usuario se da en la casilla central ya que aquí la IA inicia
en una esquina diferente por cada juego.

A diferencia de la modalidad 2, la modalidad 1 no


se observa un comportamiento repetitivo ya que la IA
busca tirar en la casilla central o en una esquina para
obtener ventaja sobre el usuario.

En todas las pruebas realizadas no se logro


obtener una victoria contra la IA del gato.

6 REFERENCIAS
[1] Hantao Zhang . (2010, Mayo ). Artificial Inteligence [En línea].
Disponible en: http://www.cs.uiowa.edu/~hzhang/c145/notes/01-
intro-4p.pdf

You might also like