Você está na página 1de 29

Nine Men Hexagonal

ndice

ndice
Pg.01
Resumen

Pg.02

Introduccin
Pg.02
Descripcin del juego original
Pg.02
Representacin del Juego modificado como BEE
Pg.03
Problema de Bsqueda
Pg.03
Objetos

Pg.03

Estado
Pg.03
Representacin

Pg.03

Estado Inicial
Pg.04
Estado Final
Pg.04
Reglas de Produccin
Pg.05
Algoritmo Humano-Maquina
Pg.16
Funcin Evaluadora
Pg.18
Implementacin
Pg.19
Nivel Principiante
Pg.20
Nivel Intermedio
Pg.20

Mtodo Minimax
Pg.21
Nivel Avanzado Minimax
Pg.21
Pruebas

Pg.22

Conclusiones
Pg.22
Referencias
Pg.22

Juegos Inteligente Humano- mquina


Nine Men (El juego de Morris)
Resumen
En el presente trabajo se desarrolla una variante del juego Nine-Men o, que
denominamos Nine-Men-Hexagonal. Para el desarrollo del juego inteligente se
us la tcnica de bsqueda en un espacio de estado y se implement un
algoritmo humano mquina con tres niveles de dificultad: principiante,
normal y experto; para las cuales se us respectivamente las siguientes
estrategias: no determinstico, primero el mejor y Mini-Max. Adems, se
muestran las pruebas numricas, que confirman la inteligencia del sistema de
acuerdo al nivel de dificultad.

1. Introduccin
Este antiqusimo juego es conocido con muchos nombres diferentes: Juego del
molino, Nueve hombres de Morris, Morris, Merels o Merreles. Es uno de los
juegos vivos ms antiguos que existen. Su origen es bastante incierto. Hay
indicios de juegos similares ya en el siglo XIV a.c. en el antiguo Egipto [1], algo
ms tarde en Grecia y en Fenicia. Se sabe ya de su existencia en Europa
Occidental, sobre todo a travs de la Pennsula Ibrica, en el S. XIII. El juego
alcanz su mximo apogeo en el S XIV, en el que ya se jugaba en muchas
cortes Europeas. Ya en aquella poca el juego era idntico al que ha llegado y
se practica en nuestros das.

NINEMEN-HEXAGONAL

Nuestra propuesta del juego en el presente proyecto es alterar el juego


mediante la transformacin del tablero original, en nuestro caso el tablero
estar formado por tres hexgonos concntricos unidos en la mitad de sus
6 lados por lneas perpendiculares. Como se ve en la Imagen 2, el juego se
desarrollar sobre los 36 puntos del tablero (los 18 vrtices de dichos
cuadrados y las 18 intersecciones que forman con las lneas
perpendiculares).

A continuacin se describe los movimientos que poseen cada ficha y el


desenlace del juego.
Se echa a suertes quin es el que realiza el primer movimiento. A partir de ah
el juego tiene dos fases bien diferenciadas.
El juego comienza con el tablero vaco. En la primera fase cada jugador en su
turno coloca una de sus nueve fichas sobre cualquiera de los puntos del tablero
que estn libres. Durante esta fase no es posible mover las fichas ya situadas
en el tablero.
Una vez colocadas todas las fichas sobre el tablero comienza la segunda fase,
durante la cual cada jugador en su turno mueve una de sus fichas a un punto
adyacente libre a travs de alguna de las lneas del tablero.
Durante ambas fases del juego, siempre que la ficha incorporada o desplazada
completa un molino, esto es, una secuencia de tres fichas del mismo color
situadas sobre los tres puntos de una misma lnea, debe capturarse una ficha
adversaria; la ficha capturada es sacada del tablero y no puede volver a ser
jugada.
Siempre que se completa un molino se realiza captura, incluso aunque el
molino se haya completado previamente y se repita de nuevo al retornar una
misma ficha a un punto que ocupaba anteriormente. El jugador que realiza la
captura elige libremente la ficha a capturar entre todas las fichas del
adversario que no forman parte de algn molino. En el caso de que todas las
fichas del rival formen parte de algn molino, elige libremente entre todas
ellas.

Una vez que un jugador slo dispone de tres fichas sobre el tablero como
consecuencia de haber sufrido seis capturas, puede desplazar sus fichas
libremente a cualquier punto del tablero, sin la limitacin de hacerlo tan solo
hacia lugares adyacentes. [3] [4]
Finalmente un jugador vence la partida en estos dos casos:

El jugador contrario le quedan 2 o menos fichas. Cuando ha realizado


7 capturas, como consecuencia de lo cual el rival tiene slo dos fichas y no
puede formar nuevos molinos.

El jugador contrario est bloqueado. Cuando el rival no puede realizar


ningn movimiento por estar todas sus fichas bloqueadas.

2. Problema de Bsqueda
Un Problema de bsqueda es definido como un problema de bsqueda en un
espacio de estado cuando se definen por lo menos las siguientes
caractersticas: estado, estado inicial, estado meta y las reglas. A seguir se
define Nine-Men-Hexagonal como un problema de bsqueda en un espacio de
estado.

2.1. Objetos
Tablero, fichas, y turno.

2.2. Estado
Ubicacin de fichas en el tablero, el turno de quien va a jugar, y el nmero de
fichas posicionadas y eliminadas tanto azules como rojas.

2.3. Representacin
T, t, m, ap, ae, rp, re, donde T {0, 1, -1}3x12; donde: 0 = vaco, 1 = ficha
azul, -1 = ficha roja
t es el turno del jugador, siendo 1 para azul y -1 para roja.
m es la variable que nos indicar la existencia de un molino, siendo los valores
a tomar, 0 = no hay molino, 1 = molino para fichas azules, y -1 = molino para
fichas rojas.
ap = fichas azules posicionadas en el tablero y rp = fichas rojas posicionadas
en el tablero.
ae = fichas azules eliminadas y re = fichas rojas eliminadas.
Adems T[x,y] representa la posicin de la ficha en el hexgono X y en la
posicin Y con respecto a ese hexgono. A continuacin la representacin
grfica del tablero.

Por ejemplo: T[2,1] representa la ubicacin en el 2do exgono (el del centro) y
en la esquina superior izquierda.

2.4. Estado Inicial


T = [0]3x12, t = 1, m = 0, ap = 0, rp = 0, ae = 0, re = 0

2.5. Estado Final


Como es muy grande, vamos a establecer las condiciones de estado meta. Un
jugador vence la partida en estos casos:

El jugador contrario le quedan 2 o menos fichas. Cuando ha


realizado 7 capturas, como consecuencia de lo cual el rival tiene slo dos
fichas y no puede formar nuevos molinos.
Si ae = 7, entonces gana rojas.
Si re = 7, entonces gana azules.

El jugador contrario est bloqueado. Cuando el rival no puede


realizar ningn movimiento por estar todas sus fichas bloqueadas. Tenemos
2 casos: Cuando el jugador de fichas rojas gana o cuando el jugador de
fichas azules gana.

El jugador de fichas rojas gana:


6

Si t = 1 y T[x,y] = 1 y
Si y < 12 y T[x,y+1] 0
Si y = 12 y T[x,1] 0 (es decir no puede moverse a la derecha)
o Si y >1 y T[x,y-1] 0
Si y = 1 y T[x,12] 0 (ni tampoco a la izquierda)
o Si ymod2 = 0 (tiene que ser par)
x < 3 T[x+1,y] 0 (ni arriba)
ox>1
T[x-1,y] 0 (ni abajo)

El jugador de fichas azules gana:


Si t = -1 y T[x,y] = -1 y
Si y < 12 y T[x,y+1] 0
Si y = 12 y T[x,1] 0 (es decir no puede moverse a la derecha)
o Si y >1 y T[x,y-1] 0
Si y = 1 y T[x,12] 0 (ni tampoco a la izquierda)
o Si ymod2 = 0 (tiene que ser par)
x < 3 T[x+1,y] 0 (ni arriba)
ox>1
T[x-1,y] 0 (ni abajo)

2.5.Reglas
posicionarAzul(x,y)
posicionarRoja(x,y)
moverAzulHorario(x,y)
moverAzulAntihorario(x,y)
moverAzulArriba(x,y)
moverAzulAbajo(x,y)
moverRojaHorario(x,y)
moveRojaAntihorario(x,y)
moveRojaArriba(x,y)

moveRojaAbajo(x,y)
moveAzulLibre(x0,y0.x1,y1)
moveRojaLibre(x0,y0.x1,y1)
eliminarAzul(x,y)
eliminarRoja(x,y)
En la siguiente tabla se muestran el conjunto de reglas con sus respectivas
condiciones y estados finales. En todos los casos, el estado final corresponde al
cambio de turno y al cambio de la ficha en la posicin final por el de la ficha en
la posicin inicial.

Estado

Regla

T, t, m, ap, ae,
rp, re

posicionarAzul(x,y
)

Condici
n
m=0
t=1
ap < 9
T[x,y] =
0

Nuevo Estado
apap+1
T[x,y] 1
(se verifica si hay molino
a partir de la posicin
x,y)
Si ymod2 0 (es impar,
est en los extremos)
entonces
Si ymod2 0 (es
impar, est en los
extremos) entonces
Si (y 11 y y 1)
entonces
Si T[x,y+1] = T[x,y+2]
=t
o T[x, y-1] = T[x,
y-2] = t entonces
m t
fin-si
Sino
Si T[x,y+1] = T[x,1] =
t
o T[x, 12] = T[x, 11]
= t entonces
mt
fin-si
fin-si
Sino (es par, est en el
medio)
Si y < 3 y y >1
entonces

Si T[x+1,y] = T[x-1,y]
= t entonces
m t
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
m t
fin-si
Si T[x,y-1] = T[x,y+1]
= t entonces
m t
fin-si
fin-si
Si m = 0 entonces (no
hay molino)
t -1

T, t, m, ap, ae,
rp, re

posicionarRoja(x,y
)

m=0
t = -1
rp < 9
T[x,y] =
0

rprp+1
T[x,y] -1
se verifica si hay molino
a partir de la posicin
x,y)
Si ymod2 0 (es impar,
est en los extremos)
entonces
Si ymod2 0 (es
impar, est en los
extremos) entonces
Si (y 11 y y 1)
entonces
Si T[x,y+1] = T[x,y+2]
=t
o T[x, y-1] = T[x,
y-2] = t entonces
m t
fin-si
Sino
Si T[x,y+1] = T[x,1] =
t
o T[x, 12] = T[x, 11]

= t entonces
mt
fin-si
fin-si
Sino (es par, est en el
medio)
Si y < 3 y y >1
entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
m t
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
m t
fin-si
Si T[x,y-1] = T[x,y+1]
= t entonces
m t
fin-si
fin-si
Si m = 0 entonces (no
hay molino)

T, t, m, ap, ae,
rp, re

moverAzulHorario(
x,y)

t1
m=0
Si y = 12 entonces
t=1
T[x,1] 1
ap = 9
T[x,y] 0
T[x,y] =
y1
1
Sino
Si y < 12
T[x, y+1] 1
y
T[x, y] 0
T[x,y+1]
y y +1
=0
se verifica si hay molino
Si y = 12 a partir de la posicin
y T[x,1]
x,y)
=0
Si ymod2 0 (es impar,
est en los extremos)
10

entonces
Si ymod2 0 (es
impar, est en los
extremos) entonces
Si (y 11 y y 1)
entonces
Si T[x,y+1] = T[x,y+2]
=t
o T[x, y-1] = T[x,
y-2] = t entonces
mt
fin-si
Sino
Si T[x,y+1] = T[x,1] =
t
o T[x, 12] = T[x, 11]
= t entonces
mt
fin-si
fin-si
Sino (es par, est en el
medio)
Si y < 3 y y >1
entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
m t
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
m t
fin-si
Si T[x,y-1] = T[x,y+1]
= t entonces
m t
fin-si
fin-si
Si m = 0 entonces (no
hay molino)
t -1
11

T, t, m, ap, ae,
rp, re

moverAzulAntihor
ario(x,y)

m= 0
t=1
ap = 9
T[x,y] =
1
Si y >1 y
T[x,y-1]
=0
Si y = 1
y T[x,12]
=0

Si y = 1 entonces
T[x,12] 1
T[x,y] 0
y 12
Sino
T[x, y-1] 1
T[x, y] 0
y y -1
se verifica si hay molino
a partir de la posicin
x,y)
Si ymod2 0 (es impar,
est en los extremos)
entonces
Si ymod2 0 (es
impar, est en los
extremos) entonces
Si (y 11 y y 1)
entonces
Si T[x,y+1] = T[x,y+2]
=t
o T[x, y-1] = T[x,
y-2] = t entonces
mt
fin-si
Sino
Si T[x,y+1] = T[x,1] =
t
o T[x, 12] = T[x, 11]
= t entonces
m t
fin-si
fin-si
Sino (es par, est en el
medio)
Si y < 3 y y >1
entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=

12

T[3,y]=t entonces
mt
fin-si
Si T[x,y-1] = T[x,y+1]
= t entonces
mt
fin-si
fin-si
Si m = 0 entonces (no
hay molino)

T, t, m, ap, ae,
rp, re

T, t, m, ap, ae,
rp, re

moverAzulArriba(x
,y)

moverAzulAbajo(x,
y)

m= 0
t=1
ymod2
=0
(tiene
que ser
par)
x<3
T[x+1,y]
=0
T[x,y] =
1

m= 0
t=1
ymod2
=0
(tiene
que ser
13

t -1
T[x+1,y] 1
T[x,y] 0
x x +1
Si y < 3 y y >1 entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
mt
fin-si
Si T[x,y-1] = T[x,y+1] =
t entonces
mt
fin-si
Si m = 0 entonces (no
hay molino
t -1
T[x-1,y] 1
T[x,y] 0
x x -1
Si y < 3 y y >1 entonces
Si T[x+1,y] = T[x-1,y]

par)
x>1
T[x-1,y]
=0
T[x,y] =
1

T, t, m, ap, ae,
rp, re

moverRojaHorario(
x,y)

= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
mt
fin-si

Si T[x,y-1] = T[x,y+1] =
t entonces
mt
fin-si
Si m = 0 entonces (no
hay molino
t -1
m=0
Si y = 12 entonces
t = -1
T[x,1] -1
rp = 9
T[x,y] 0
T[x,y] =
y 1
-1
Sino
Si y < 12
T[x, y+1] -1
y
T[x, y] 0
T[x,y+1]
y y +1
=0
se verifica si hay molino
Si y = 12 a partir de la posicin
y T[x,1]
x,y)
=0
Si ymod2 0 (es impar,
est en los extremos)
entonces
Si ymod2 0 (es
impar, est en los
extremos) entonces
Si (y 11 y y 1)
entonces
Si T[x,y+1] = T[x,y+2]
=t
o T[x, y-1] = T[x,
y-2] = t entonces
mt
fin-si
Sino
Si T[x,y+1] = T[x,1] =
t
o T[x, 12] = T[x, 11]
14

= t entonces
m t
fin-si
fin-si
Sino (es par, est en el
medio)
Si y < 3 y y >1
entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
mt
fin-si
Si T[x,y-1] = T[x,y+1]
= t entonces
mt
fin-si
fin-si

T, t, m, ap, ae,
rp, re

moveRojaAntihora
rio(x,y)

m= 0
t = -1
rp = 9
T[x,y] =
-1
Si y >1 y
T[x,y-1]
=0
Si y = 1
y T[x,12]
=0

15

Si m = 0 entonces (no
hay molino)
t 1
Si y = 1 entonces
T[x,12] -1
T[x,y] 0
y 12
Sino
T[x, y-1] -1
T[x, y] 0
y y -1
se verifica si hay molino
a partir de la posicin
x,y)
Si ymod2 0 (es impar,
est en los extremos)
entonces

Si ymod2 0 (es
impar, est en los
extremos) entonces
Si (y 11 y y 1)
entonces
Si T[x,y+1] = T[x,y+2]
=t
o T[x, y-1] = T[x,
y-2] = t entonces
mt
fin-si
Sino
Si T[x,y+1] = T[x,1] =
t
o T[x, 12] = T[x, 11]
= t entonces
m t
fin-si
fin-si
Sino (es par, est en el
medio)
Si y < 3 y y >1
entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
mt
fin-si
Si T[x,y-1] = T[x,y+1]
= t entonces
mt
fin-si
fin-si

T, t, m, ap, ae,

moveRojaArriba(x,

m= 0
16

Si m = 0 entonces (no
hay molino)
t 1
T[x+1,y] -1

rp, re

T, t, m, ap, ae,
rp, re

y)

moveRojaAbajo(x,
y)

t = -1
ymod2
=0
(tiene
que ser
par)
x<3
T[x+1,y]
=0
T[x,y] =
-1

m= 0
t = -1
ymod2
=0
(tiene
que ser
par)
x>1
T[x-1,y]
=0
T[x,y] =
-1

T[x,y] 0
x x +1
Si y < 3 y y >1 entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
mt
fin-si
Si T[x,y-1] = T[x,y+1] =
t entonces
mt
fin-si
Si m = 0 entonces (no
hay molino
t 1
T[x-1,y] -1
T[x,y] 0
x x -1
Si y < 3 y y >1 entonces
Si T[x+1,y] = T[x-1,y]
= t entonces
mt
fin-si
Sino
Si T[1,y]= T[2,y]=
T[3,y]=t entonces
mt
fin-si
Si T[x,y-1] = T[x,y+1] =
t entonces
mt
fin-si
Si m = 0 entonces (no
hay molino
t 1

17

T, t, m, ap, ae,
rp, re

eliminarAzul(x,y)

T, t, m, ap, ae,
rp, re

eliminarRoja(x,y)

T, t, m, ap, ae,
rp, re

moveAzulLibre(x0,
y0,x1,y1)

m = -1
T[x,y] =
1
(se
verifica
que la
ficha no
pertenez
ca a
algun
molino)
T[x,y1]
1
o
T[x,y2]
1
m=1
T[x,y] =
-1
(se
verifica
que la
ficha no
pertenez
ca a
algun
molino)
T[x,y1]
-1
o
T[x,y2]
-1
ae=6
t=1
T[x0,y0]=
1
T[x1,y1]=
0
0<x0, x1
<4
0 <y0, y1
18

m0
t1
T[x,y] 0
ae ae +1

m0
t -1
T[x,y] 0
re re +1

T[x0,y0]=0
T[x1,y1]= 1
(se verifica si hay
molino a partir de la
posicin x1, y1)
Si y1mod2 0 (es impar,
est en los extremos)
entonces
Si (y1 11 y y1 1)
entonces

<13

Si T[x1,y1+1] =
T[x1,y1+2] = t
o T[x1,
y1-1] = T[x1, y1-2] = t
entonces
m t
fin-si
Sino
Si T[x1,y1+1] = T[x1,1]
=t
o T[x1, 12] = T[x1,
11] = t entonces
m t
fin-si
fin-si
Sino (es par, est en el
medio)
Si y1 < 3 y y1 >1
entonces
Si T[x1+1, y1] = T[x1-1,
y1] = t entonces
mt
fin-si
Sino
Si T[1, y1]= T[2, y1]=
T[3, y1]=t entonces
mt
fin-si
Si T[x1, y1-1] = T[x1,
y1+1] = t entonces
mt
fin-si
fin-si
Si m = 0 entonces (no
hay molino
t -1

T, t, m, ap, ae,
rp, re

moveRojaLibre(x0,
y0,x1,y1)

re=6
t = -1
T[x0,y0]=
-1
T[x1,y1]=
19

T[x0,y0]=0
T[x1,y1]= -1
(se verifica si hay
molino a partir de la

0
0<x0, x1
<4
0 <y0, y1
<13

posicin x1, y1)


Si y1mod2 0 (es impar,
esta en los extremos)
entonces
Si (y1 11 y y1 1)
entonces
Si T[x1,y1+1] =
T[x1,y1+2] = t
o T[x1,
y1-1] = T[x1, y1-2] = t
entonces
m t
fin-si
Sino
Si T[x1,y1+1] = T[x1,1]
=t
o T[x1, 12] = T[x1,
11] = t entonces
m t
fin-si
fin-si
Sino (es par, esta en el
medio)
Si y1 < 3 y y1 >1
entonces
Si T[x1+1, y1] = T[x1-1,
y1] = t entonces
mt
fin-si
Sino
Si T[1, y1]= T[2, y1]=
T[3, y1]=t entonces
mt
fin-si
Si T[x1, y1-1] = T[x1,
y1+1] = t entonces
mt
fin-si
fin-si
Si m = 0 entonces (no
hay molino
t1

20

3. Algoritmo Humano-Maquina
El algoritmo que se utilizara pretende determinar una secuencia de estados
(reglas) que inicie en un estado inicial (e1) y termine en un estado final (F).
Infelizmente, el tamao del espacio de estados para este problema de
inteligencia artificial es inconmensurable. Por esta razn no es posible utilizar
algoritmos de camino mnimo para resolver este problema. La alternativa es
determinar el camino de e1 a F sin conocer todo el grafo para ello utilizaremos
los llamados mtodos de bsqueda.
Segn [4], los mtodos de bsqueda se dividen en dos categoras, mtodos de
bsqueda ciega y mtodos de bsqueda con informacin. Los mtodos de
bsqueda ciega son aquellos que no tienen en cuenta el coste de la solucin en
la bsqueda. Los mtodos de bsqueda con informacin son aquellos que
utilizan una estimacin del coste de la solucin para guiar la bsqueda. Ambas
categoras incluyen distintos tipos de mtodos. A continuacin presentamos las
dos categoras de mtodos e bsqueda con sus respectivos mtodos.

En el presente trabajo utilizaremos el mtodo ciego (no determinstico) y los


mtodos con informacin (Primero el mejor y Mini-Max). Cada tipo de mtodo
corresponde a una estrategia de seleccin, las cuales corresponden a los
niveles de dificultad del juego. A continuacin presentamos el algoritmo
Humano-Maquina en el siguiente flujo grama:

21

El algoritmo comienza en un estado inicial descrito anteriormente en el cual


se configura el nivel del juego (principiante, intermedio o experto), el color
a utilizar por el humano y se inicializan los objetos (Tablero, Fichas y turno).
Luego se verifica si el estado del juego se encuentra en el estado meta, si
es igual al estado meta, se define quien gan la partida y termina el juego,
de lo contrario se verifica si el humano le toca jugar. Si es turno del
humano, se espera la jugada y cuando la realiza se genera el nuevo estado,
de lo contrario, se genera el estado para la mquina siguiendo el flujo
mostrado.
En la siguiente tabla se muestra las estrategias y niveles del juego
NineMen-Hexagonal. Ntese que cada estrategia corresponde a un mtodo
se bsqueda.
Nivel

Estrategia

Principiante

No Determinista

Normal

Primero el mejor

Experto

Mini-Max

Experto

Diferencia de
Utilidades

Descripcin
La mquina revisa las posibles jugadas y
selecciona una al azar.
La mquina revisa todas las posibles jugadas y,
de acuerdo a la funcin evaluadora, se elige la
que tenga mayor valor.
La maquina evala las posibles jugadas del
humano con la funcin evaluadora. Luego la
mquina selecciona la jugada que presenta el
menor valor de todas las posibles jugadas del
humano.
Al igual que con minimax, se evalan las jugadas
con el humano, pero adicionalmente se considera
el valor de la jugada de la mquina. Al final se
eligir la jugada que genere un mayor beneficio

22

de la diferencia entre la utilidad de la jugada de


la mquina menos la jugada del humano.

Para este fin se han considerado diversos criterios que hacen posible que la
mquina pueda realizar las jugadas. Entre los criterios tomados en cuenta
por el algoritmo se encuentran: El peso de cada casilla, Valor de la casilla
libre.

Funcin Evaluadora

F(g) = 0.8*(EvaluacionCasillaibre) + 0.2*pesos de la


casilla
Evaluacin Casilla Libre:
-

Si va hacer mill su valor es 10.


Si es posible mill contrario su valor es 8 (movimiento defensivo).
Si puede armar mill su valor es 6 (dos casillas colinealas vacas y la otra
casilla de color de jugador).
Si es en otros casos su valor es 1.
23

Pesos de la casilla:
{2,3,2,3,2,3,2,3,2,3,2,3}
{2,4,2,4,2,4,2,4,2,4,2,4}
{2,3,2,3,2,3,2,3,2,3,2,3}

4. Implementacin
El juego Nine Men Hexagonal se implement usando el lenguaje Java con
Eclipse usando la programacin orientada a objetos.
La pantalla principal de la primera versin de Nine Men Hexagonal cuenta
con el tablero de juego y dos secciones donde se muestran las fichas que el
humano y la mquina van posicionndose en el tablero y luego de que
finalice ello se empiezan a comer a travs del Mill. la pantalla cuenta con
un men con el cual se puede iniciar un nuevo juego y elegir el nivel de
dificultad del mismo Asimismo(Ver Figura 1), se ha considerado que el
jugador humano juegue con las fichas azules y la maquina con las fichas
rojas.

24

Figura 1: Pantalla principal de NineMenHexagonal

Nivel Principiante

25

Nivel Intermedio

Mtodo MiniMax

26

Nivel Avanzado Minimax

5. Pruebas

27

El software desarrollado fue sometido a prueba con 4 personas Adultas para


cada uno de los niveles de dificultad. Las personas que colaboraron con
nosotros para el desarrollo de las pruebas son alumnos de la Universidad
Nacional Mayor de San Marcos (UNMSM). Antes de iniciar una partida del
juego a cada una de las 4 personas se le explic detalladamente las reglas
y modificaciones que tiene el Nine Men Hexagonal con respecto al Nine Men
tradicional y se le otorg una partida de prueba para poder adaptarse al
cambio de las reglas. Luego de la partida de prueba, se empez jugando el
nivel principiante. De ganar, jugaba el nivel intermedio y de ganar el nivel
intermedio jugaba el nivel experto.
Avanzado
Dif.
Utilidades

Principiante

Intermedio

Avanzado
MiniMax

Partidas
ganadas

Partidas
perdidas

12

10

6. Conclusiones

Hasta el momento existen pocas partidas perdidas por la mquina en el


nivel experto.
La mquina presenta mayor ventaja en el nivel experto (diferencia de
utilidades), ya que, la mquina es capaz de prever dos jugadas adelantadas
(mquina y humano).
Si se usara ms niveles en el MiniMax, es decir, cuatro niveles, el nivel de
dificultad sera mucho mayor pero implicara mayor gasto computacional.
Se confirm que el nivel de dificultad del juego vara de acuerdo al
algoritmo utilizado para encontrar la jugada por parte de la mquina.
Conforme el algoritmo cuenta con mayor informacin, el grado de dificultad
del juego es mayor.
En algunos casos, el nivel intermedio gener mejores jugadas que el nivel
avanzado usando el algoritmo minimax. Esto es, debido a que busca un
movimiento ms defensivo que ofensivo. Al aplicar el algoritmo diferencia
de utilidades, mejoramos considerablemente el nivel, pues tambin
estamos considerando el beneficio por nuestra jugada.

7. Referencias:
[1] Ralph Gasser (1996). Solving Nine Mens Morris (PDF). Games of No
Chance, MSRI Publications, Volume 29.

http://library.msri.org/books/Book29/files/gasser.pdf
28

[2] Daniel Esteban. Nine Mens Morris. Facultad de Informtica de Madrid.


Departamento de Matemtica Aplicada.
http://www.dma.fi.upm.es/docencia/primerciclo/matrecreativa/juegos/MorrisDaniel/index.html

[3] Wood, Clement; Gloria Goddard (1940). The Complete Book of Games.
Garden City, Nueva York: Garden City Books. pp. 342343.
[4] Foster, R. F. (1946). Foster's Complete Hoyle: An Encyclopedia of Games. J.
B. Lippincott Company. pp. 568569.

29

Você também pode gostar