Está en la página 1de 24

Polidress

INTELIGENCIA ARTIFICIAL

Integrantes:

Berto Castro Felix

Villavicencio Quevedo Xavier

Rivera Aldunate Edgar

Polidress

JUEGO HUMANO - MAQUINA POLIDRESS


Villavicencio Quevedo Xavier Berto Castro Flix Ricardo Rivera Aldunate Edgar Facultad de Ingeniera de Sistemas e Informtica Universidad Nacional Mayor de San Marcos, Lima, Per http://www.sistemas.edu.pe/ RESUMEN Este presente trabajo trata sobre el desarrollo de un juego inteligente llamado Polidress, el cual es una variante del clsico juego ajedrez. Las variantes son principalmente el objetivo del juego y el contexto en el que se desarrolla, tambin tenemos otras variantes como los nombres de las piezas, las formas cmo se desplazan y la distribucin de las mismas dentro del tablero. 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 mejor diferencia de utilidades. Adems, se muestran las pruebas numricas, que confirman la inteligencia del sistema de acuerdo a nivel de dificultad. 1. INTRODUCCION
1

Los orgenes de nuestro juego se remontan al juego del ajedrez el cual, segn la

leyenda nos sita en la India, su inventor un brahmn (miembro de una casta sacerdotal) llamado Sissa Ben Dahir quien lo creo para distraccin y ocio de un rey, tal fue el xito en la corte de dicho rey que ofreci a tan brillante inventor que eligiera su recompensa. El brahmn solicit que le fuera concedido un grano de trigo en la primera casilla del tablero, dos en la segunda, cuatro en la tercera y seguir doblando la cantidad hasta totalizar las 64 casillas del tablero. Imposible que el rey haya podido conceder la demanda del genio creador, ya que la cifra final es tan elevada que sobrepasa la produccin mundial de trigo de la actualidad. Casi todos los escritos que hay sobre los orgenes del ajedrez tienden a realzar el influjo que ejerce a todo aqul que lo practica. Las leyendas se originan en distintas civilizaciones pero en su mayora se sitan en el Lejano y Cercano Oriente. Dichas narraciones fueron transmitidas de forma oral y los rabes, al ser
1

Copyright 2005 Proyecto Saln Hogar: Saba usted el origen del ajedrez?

Polidress
los sucesores de la tradicin cultural de la zona indo-persa por derechos de conquista, fueron los que asimilaron las tradiciones del ajedrez a su cultura.

Polidress: A partir del Ajedrez se pens en hacer un juego parecido. Este juego hace alusin a lo que pasa en una campaa poltica basada en la lucha por llegar al silln presidencial, en el cual 2 partidos polticos se enfrentan cada uno con diversas piezas que protegen y luchan por su lder El candidato el cual tiene por objetivo llegar al silln presidencial. El tablero es 11x11 y adems tiene en su centro (coordenada (6,6)) un casillero especial de color blanco con un crculo rojo que nos indica el silln presidencial Cuenta con un total de 21 piezas por cada partido poltico (6 militantes, 5 Operarios, 4 Tcnicos, 3 Asesores, 2 Dirigentes, 1 Candidato). Las piezas se encuentran ubicadas en las esquinas formando un tringulo rectangular y los colores de las piezas de los partidos polticos pueden ser Verdes o Azules como se muestra en la figura 1.

Figura 1. Posicin inicial de nuestro juego

Polidress

En este juego se podr ganar de dos maneras: Cuando el Candidato llega al silln presidencial. Capturando al candidato contrario.

Reglas: 1. Ninguna pieza a excepcin del Candidato puede ubicarse o traspasar el casillero del silln presidencial. 2. Gana el jugador que logre posicionar al Candidato en el punto medio del tablero o logra capturar al candidato contrario.

Polidress

3. Las piezas son las siguientes 6 militantes (M) 5 Operarios (O) 4 Tcnicos (T) 3 Asesores (A) 2 Dirigentes (D) 1 Candidato (C)

Siguen los siguientes movimientos:

Polidress

Militantes: Son las piezas menos valiosas, tienen un movimiento de uno en uno, pero de forma diagonal y no puede retroceder, come a la ficha del oponente que este a su costado.

Operarios: tiene un movimiento parecido a la torre del ajedrez, es decir se puede mover de forma vertical u horizontal, pero solo hasta un mximo de 3 casilleros.

Tcnicos: Es una de las fichas ms valiosas del juego, su desplazamiento es en forma de L al igual que el caballo del ajedrez.

Asesores: tiene un movimiento parecido al alfil del ajedrez, es decir su movimiento es en forma diagonal, pero solo hasta un mximo de 3 casilleros.

Dirigentes: Esta ficha se mueve a lo largo y ancho del tablero, es decir de forma horizontal o vertical, al igual que la reina; cuando realiza una comida debe ocupar la posicin de la pieza del oponerte al que le est dando fin.

Candidato: Es la principal pieza del juego, todo gira en torno a esta ficha, su objetivo llegar al centro del tablero , es decir , al silln presidencial , as ganar la contienda electoral , su movimiento es igual al Rey del Ajedrez , es decir , un casillero en cualquier direccin.

Polidress

2. PROBLEMA DE BUSQUEDA

Un Problema de bsqueda es definido como la bsqueda de un espacio de estado cuando se definen por lo menos las siguientes caractersticas: estado, estado inicial, estado meta y las reglas. El juego Polidress, se define como un problema de bsqueda en un espacio de estado.

2.1 Objetos: fichas, tablero, turno.

2.2 Estado: Ubicacin de las fichas en el tablero, el turno de quien juega (Azules [A] o Verdes [V]). Representacin: , donde: ( Y adems: Vaco= Candidato Azul Delegado Azul Asesor Azul Tcnico Azul Operario Azul Militante Azul 2.3 Estado Inicial: =1 =2 =3 =4 =5 =6 Candidato Verde Delegado Verde Asesor Verde Tcnico Verde Operario Verde Militante Verde = -1 = -2 = -3 = -4 = -5 = -6 ) * +

Polidress

2.3 Condiciones de estado meta:

Si el candidato Azul ( 1 ) llega al silln presidencial , es decir , el casillero con posicin (6,6) del tablero Gana Azul. Si el candidato Verde ( -1 ) llega al silln presidencial , es decir , el casillero con posicin (6,6) del tablero Gana Azul.
2.4 Reglas:

Movimientos: ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) )

Comer: ( ( ) )

Polidress
( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) )

Estado

Regla

Condicin

Nuevo Estado/Hijo suceso T[x,y]

T[x,y] = 1 T[c,d] = 1 c 11 1 d 11 MOVCA(x,y,c,d) Si(c>x & d=y) -> c=x+1 Si(c<x & d=y) -> c=x-1 Si(d>y & c=x) ->d=y+1 Si(d<y & c=x) ->d=y-1 Si(d!=y & c!=x) -> |c-x|=1 & |d-y|=1

T[c,d] 1

T[x,y] T[x,y] = -1 T[c,d] = 1 c 11 1 d 11 Si(c>x & d=y) -> c=x+1 Si(c<x & d=y) -> c=x-1 Si(d>y & c=x) -> d=y+1 Si(d<y & c=x) -> d=y-1 Si(d!=y & c!=x) -> |c-x|=1 & |d-y|=1 )

T[c,d] -1

MOVCV(x,v,c,d)

T[x,y] = 2 T[c,d] =

T[x,y]

Polidress
1 c 11 c6 1 d 11 d6 Si (c!=x & d!=y) entonces |c-x|=|d-y| Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = -2 T[c,d] = 1 c 11 c6 1 d 11 d6 Si (c!=x & d!=y) entonces |c-x|=|d-y| Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = 3 T[c,d] = 1 c 11 c6 1 d 11 d6 |c-x|=3 & |d-y|=3 Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento ( ) T[x,y] = -3 T[c,d] = 1 c 11 c6 T[x,y]

T[c,d] 2

T[c,d] -2

T[c,d] 3

T[c,d] -3

Polidress
1 d 11 d6 |c-x|=3 & |d-y|=3 Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = 4 T[c,d] = 1 c 11 c6 1 d 11 d6 ( ) (c = x - 1 & d = y - 2) (c = x - 2 & d = y - 1) (c =x - 2 & d = y + 1) (c = x - 1 & d = y + 2) (c = x + 1 & d = y + 2) (c = x + 2 & d = y + 1) (c = x + 2 & d = y - 1) (c = x + 1 & d = y - 2) T[x,y] T[x,y] = -4 T[c,d] = 1 c 11 c6 1 d 11 d6 (c = x - 1 & d = y - 2) (c = x - 2 & d = y - 1) (c =x - 2 & d = y + 1) (c = x - 1 & d = y + 2) (c = x + 1 & d = y + 2) (c = x + 2 & d = y + 1) (c = x + 2 & d = y - 1) (c = x + 1 & d = y - 2)

T[c,d] 4

T[c,d] -4

) T[x,y] = 5 T[c,d] = 1 c 11

T[x,y]

Polidress
c6 1 d 11 d6 Si( c=x & |d-y|=3) Si( d=y & |c-x|=3) Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = -5 T[c,d] = 1 c 11 c6 1 d 11 d6 Si( c=x & |d-y|=3) Si( d=y & |c-x|=3) Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = 6 T[c,d] = 1 c 11 c6 1 d 11 d6 c=x-1 d=y+1 T[x,y] = -6 T[c,d] = 1 c 11 c6 1 d 11 d6 c=x+1 d=y-1 T[c,d] 5

T[c,d] -5

T[c,d] 6

T[x,y]

T[c,d] -6

Polidress
T[x,y] T[x,y] = 1 T[c,d] {,2,3,4,5,6} 1 c 11 c6 1 d 11 d6

T[c,d] 1

Si(c>x & d=y) -> c=x+1 Si(c<x & d=y) -> c=x-1 Si(d>y & c=x) ->d=y+1 Si(d<y & c=x) ->d=y-1 Si(d!=y & c!=x) -> |c-x|=1 & |d-y|=1 T[x,y] T[x,y] = -1 T[c,d] {,-2,-3,-4,-5,-6} 1 c 11 c6 1 d 11 d6

T[c,d] -1

Si(c>x & d=y) -> c=x+1 Si(c<x & d=y) -> c=x-1 Si(d>y & c=x) ->d=y+1 Si(d<y & c=x) ->d=y-1 Si(d!=y & c!=x) -> |c-x|=1 & |d-y|=1 T[x,y] T[x,y] = 2 T[c,d] {,1,2,3,4,5,6} ( ) 1 c 11 c6 1 d 11 d6 Si (c!=x & d!=y) entonces |c-x|=|d-y| Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[c,d] 2

Polidress
T[x,y] T[x,y] = -2 T[c,d] {,-1,-2,-3,-4,-5,-6} ( ) 1 c 11 c6 1 d 11 d6 Si (c!=x & d!=y) entonces |c-x|=|d-y| Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = 3 T[c,d] {,1,2,3,4,5,6} 1 c 11 c6 1 d 11 d6 |c-x|=3 & |d-y|=3 Esta pieza no puedo saltar otras piezas en la trayectoria del movimiento. T[c,d] -2

T[c,d] 3

T[x,y] T[x,y] = -3 T[c,d]{,-1,-2,-3,-4,-5,-6} 1 c 11 c6 1 d 11 d6 |c-x|=3 & |d-y|=3 Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento.

T[c,d] -3

T[x,y] ( ) T[x,y] = 4 T[c,d] {,1,2,3,4,5,6} 1 c 11 c6 T[c,d] 4

Polidress
1 d 11 d6 (c = x - 1 & d = y - 2) (c = x - 2 & d = y - 1) (c =x - 2 & d = y + 1) (c = x - 1 & d = y + 2) (c = x + 1 & d = y + 2) (c = x + 2 & d = y + 1) (c = x + 2 & d = y - 1) (c = x + 1 & d = y - 2) T[x,y] T[x,y] = -4 T[c,d] { ,-1,-2,-3,-4,-5,-6} 1 c 11 c6 1 d 11 d6 (c = x - 1 & d = y - 2) (c = x - 2 & d = y - 1) (c =x - 2 & d = y + 1) (c = x - 1 & d = y + 2) (c = x + 1 & d = y + 2) (c = x + 2 & d = y + 1) (c = x + 2 & d = y - 1) (c = x + 1 & d = y - 2)

T[c,d] -4

T[x,y] T[x,y] = 5 T[c,d] {,1,2,3,4,5,6} 1 c 11 c6 1 d 11 d6 Si( c=x & |d-y|=3) Si( d=y & |c-x|=3) Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] ( ) T[x,y] = -5 T[c,d] { ,-1,-2,-3,-4,-5,-6} 1 c 11 c6

T[c,d] 5

T[c,d] -5

Polidress
1 d 11 d6 Si( c=x & |d-y|=3) Si( d=y & |c-x|=3) Esta pieza no puedo saltar otras piezas ni pasar por el centro del tablero en la trayectoria del movimiento T[x,y] T[x,y] = 6 T[c,d] {,1,2,3,4,5,6} 1 c 11 c6 1 d 11 d6 (c=x-1 & d=y) (c=x & d=y+1)

T[c,d] 6

T[x,y] T[x,y] = -6 T[c,d]{,-1,-2,-3,-4,-5,-6} 1 c 11 c6 1 d 11 d6 (c=x+1 & d=y) (c=x & d=y-1)

T[c,d] -6

Polidress

3. ALGORITMO HUMANO-MAQUINA Para el desarrollo del algoritmo humano-mquina del juego Polidress, se han considerado tres estrategias de seleccin de la jugada para la mquina, las cuales corresponden a los niveles de dificultad del juego. Esto lo podemos notar en la siguiente Tabla 1. NIVEL ESTRATEGIA DESCRIPCION Se selecciona de forma aleatoria una de las posibles jugadas, este nivel solo sirve para que el jugador Humano aprenda a interactuar con el juego.

Principiante

No determinstica

las posiciones elegidas por la Mquina se eligen buscando la mejor posicin para esta, es decir, la que genera mejor valor de la funcin evaluadora. Se selecciona la jugada que genera mayor diferencia de utilidades entre la jugada de la mquina y la correspondiente mejor jugada para el humano. Tabla 1

Normal

Primero el mejor

Experto

Max-Diferencia (criterio: ofensivo)

Polidress

Definimos la funcin evaluadora de la siguiente forma: IMPLEMENTACION El juego Polidress se implement usando el lenguaje Java. La pantalla inicial de nuestro juego, cuenta con una pantalla de presentacin. Ver Figura 1

Figura 1. Pantalla de presentacin

Polidress

Se puede seleccionar las diferentes opciones del juego, distribuidas en las pestaas opciones, configuracin, acerca del Juego, crditos. En la pestaa opciones se puede elegir iniciar un nuevo juego, seleccionar quien va a iniciar el movimiento, y el color del tablero

Elegir qu color de piezas comienza el juego

Polidress

En la pestaa configuracin, se puede elegir si deseamos jugar Humano-Humano Humano-Maquina. En la opcin Humano-Maquina se puede elegir entre los niveles de dificultad que desea jugar.

Polidress
La pestaa Acerca del juego, nos brindan informacin del juego.

En la pestaa crditos

Polidress
En la interfaz del juego, se muestran las pestaas mencionadas anteriormente, y adems de los siguientes elementos.

Polidress
4. PRUEBAS El juego desarrollado fue sometido a prueba con 10 personas mayores de 18 aos para cada uno de los niveles de dificultad. Seleccionamos a las personas para el desarrollo de las pruebas (en su mayora de la facultad y amigos cercanos). Los participantes tuvieron una partida de prueba orientado a que puedan ver el uso del software. Luego de la partida de prueba, se empez jugando el nivel principiante, normal y experto. Los resultados para la mquina se describen a continuacin en la siguiente Tabla: Nivel Principiante Normal Experto Partidas ganadas 1 8 12 Partidas empatadas 0 0 0 Partidas perdidas 9 6 1

Segn los resultados de la tabla podemos concluir que 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 es ms complejo, el grado de dificultad del juego es mayor. 5. CONCLUSION 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 es ms complejo, el grado de dificultad del juego es mayor. Para que el algoritmo implementados de primero el mejor (Nivel normal) y diferencia de utilidades (Nivel Experto) es muy importante tener una funcin evaluadora bien definida ya que depende de dichos algoritmos ello. Se confirma que el nivel de juego mostrado por la mquina depende del algoritmo empleado. Asimismo el tiempo que toma en realizar todos los

Polidress
clculos necesarios para decidir una jugada por parte de la mquina se incrementa conforme se incrementa del nivel de juego.

6. REFERENCIAS
http://www.gran-angular.net/wp-content/uploads/2008/07/algoritmos-de-juegos.pdf http://ocw.uc3m.es/ingenieria-telematica/inteligencia-en-redes-decomunicaciones/material-de-clase-1/02-resolucion-de-problemas http://elvex.ugr.es/decsai/iaio/slides/A3%20Search.pdf