View
419
Download
6
Embed Size (px)
DESCRIPTION
Juego de Damas en Prolog Navez Maiños Alex Sergio Pita Chavez Quilcate Blas Steve
Citation preview
1
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCUELA ACADEMICO PROFESIONAL DE
INFORMATICA
MONOGRAFÍA
PROBLEMA DEL JUEGO DE DAMAS
AUTORES:
- Navez Mariños Alex
- Pita Chávez Sergio - Quicate Blas Steve
TRUJILLO - PERU 2014
2
INDICE
Contenido INDICE ................................................. 2
DEDICATORIA ........................................... 3
INTRODUCCION .......................................... 4
I. Capítulo 1: Marco Teórico. .............................. 5
1.1. Realidad Problemática ............................. 5
II. Capítulo 2: Descripción y algoritmos utilizados. ............ 6
2.1. Características. .................................. 6
2.2. Estructura del programa. ............................ 8
2.3. Estructura de datos y algoritmos utilizados ...............11
2.4. Implementación de estructuras de datos utilizados ..........15
2.5. Resultados experimentales ..........................16
Conclusiones ............................................19
Mejoras ................................................19
3
DEDICATORIA
Dedico este humilde trabajo para mis compañeros de informática
que nos acompañaron en el curso de Prolog.
Que junto a ellos sali aprendi este lenguaje de programación tan útil para sistemas expertos
4
INTRODUCCION
El programa desarrollado permite hacer un juego de damas entre un
jugador humano y el ordenador. Todavía puede ser utilizado como
una plataforma para un juego entre dos jugadores humanos,
permitiendo que sólo los movimientos que cumplen con las normas
aplicadas. Las reglas que se utilizan en el programa se basan en el
juego de damas jugado desde su creación que consiste en un tablero
con 64 casillas dispuestas de cuadriculas de 8 x 8.
El tablero en el mismo que el ajedrez común y cada jugador dispone
sus fichas en cada lado del tablero dentro de un recuadro de color
negro o blanco.
Implementaremos este programa es la reproducción en las fichas
basadas en el algoritmo Minimax con cortes alfa – beta.
El programa debe permitir al usuario elegir el nivel de profundidad de
la investigación llevada a cabo por el algoritmo, simulando así
diferentes niveles de dificultad para el juego.
5
I. Capítulo 1: Marco Teórico.
1.1. Realidad Problemática
En los centros educativos primarios como secundarios se
podría desarrollar torneos de juego de damas, así podríamos
motivar a los niños y jóvenes por este juego lúdico que se ha
perdido con el pasar el tiempo con el avance de tecnología.
Este juego era muy popular en la época en que los niños
practicaban juegos de mesa como ajedrez, monopolio, cartas,
etc. Estos juegos despiertan la inteligencia del niño, lo hacen
más despierto, más reflexivo, mejora su mente pues tiene que
analizar las posibles jugadas y predecir un poco el movimiento
del oponente.
6
II. Capítulo 2: Descripción y algoritmos utilizados.
2.1. Características.
2.1.1. El tablero
Es cuadrado con 64 casillas más pequeñas (cajas)
dispuestas en una cuadrícula de 8 x 8. Igual que el tablero de ajedrez estándar. El juego de damas se desarrolla en casas oscuras. Cada jugador dispone de un lado en el
tablero con una casa oscura a la derecha y una "double-corner" de casas oscuras.
2.1.2. Piezas.
Un jugador juega con las piezas blancas y el otro jugando
con piezas negras. Las piezas pueden ser de tipo peón y la reina. (En el juego físico, los peones son cilíndricos y piezas planas, formando una reina por la superposición
de dos peones y así coronas).
2.1.3. El estado inicial del juego.
Inicialmente doce fichas asignados a cada jugador se colocan en las doce casillas negras más cercanas a cada
lado del tablero. La siguiente figura muestra un tablero de ajedrez con la disposición inicial de las piezas.
Figura 1. Disposición inicial en el juego de damas.
7
2.1.4. Un simple movimiento.
Un peón se mueve una casilla diagonalmente hacia adelante (es decir, hacia el lado de los opositores de la junta). Una ficha sólo se puede mover a una casilla vacía.
Una reina se mueve de una casa en diagonal hacia
delante o hacia atrás. Movimiento de captura.
2.1.5. Movimiento de captura.
Póngase una pieza del oponente saltando por encima de
él, en diagonal, a la casa adyacente a la misma. Un peón
captura en diagonal hacia delante.
Una captura de la reina en diagonal hacia delante o
hacia atrás.
En cada salto se puede capturar sólo una parte, pero
también se pueden hacer varias capturas en una fila,
saltando de casa en casa gratis libre siempre con el
mismo número (múltiples capturas).
Las piezas capturadas son retiradas del tablero y en el
caso de una captura múltiple, la eliminación se produce
después de la última captura (es decir, durante un
múltiples casas de captura que ya han capturado las
piezas permanecen empleados). Sólo puede capturar
las piezas del oponente hacia arriba. Un peón puede
capturar una dama. No se puede alcanzar el mismo
número dos veces a la vez múltiple.
Si hay una posible captura, se requiere la captura, y una
captura múltiple posible, llevarlo a cabo se requiere. Una
captura múltiple debe ser completado (es decir, sigue
una situación en la que no es posible alcanzar cualquier
captura). Si hay varias alternativas para la captura, se
puede seleccionar uno, independientemente uno del
otro y no son múltiples.
8
2.1.6. Promoción.
Cuando un peón alcanza la última fila de la tabla (es decir, la fila más alejada de la parte oponente), se convierte en reina. Un peón que se convirtió en la reina
durante una captura múltiple ya no puede capturar.
2.1.7. Las piezas blancas comienzan la partida.
Jugadores se turnan. En un tiempo transcurre un solo movimiento (captura o captura múltiple). En una jugada,
es obligatorio hacer un movimiento. Si un jugador no puede mover ninguna pieza, pierde el juego. Si un jugador captura de todas las piezas de la oponente gana
el juego.
2.2. Estructura del programa.
El diagrama mostrado en la figura siguiente ilustra la división de
jugador de damas programa en dos módulos principales. El
módulo que implementa la interfaz gráfica permite al usuario
controlar, por medio de los botones, de un conjunto de opciones
de juego (incluyendo el color de las piezas que desea jugar y el
nivel de dificultad del juego). Este módulo también permite al
jugador a actuar directamente en una representación en el
tablón de anuncios, a fin de hacer su propia cuenta.
9
Después de cada movimiento realizado por el usuario, la
interfaz gráfica se traduce el nivel de dificultad de elegir un nivel
de profundidad a los movimientos de investigación y construye
una descripción del estado actual del tablero de juego. Esta
información se proporciona al módulo jugador artificial, que
devuelve el GUI una buena jugada de equipo. La interfaz
gráfica a continuación, actualiza la representación de la junta
en la pantalla, para reflejar el movimiento de la computadora.
El diagrama que se muestra en la siguiente figura, un menor
nivel de abstracción, la formación del módulo Reproductor
artificial. El algoritmo minimax sub-módulo recibe la información
proporcionada por la interfaz gráfica, utilizando como punto de
partida para la construcción y la búsqueda de un árbol se
mueve con profundidad determinada (es decir, una búsqueda
de árbol). Este sub-módulo implementa el algoritmo Minimax
con cortes alfa-beta. Este es un algoritmo de
búsqueda genéricos juegos con dos jugadores y la información
completa, por lo que tiene que utilizar los otros tres sub-
módulos para Damas de información específicos
implementados.
10
Cada vez que el pequeño sub-módulo de identificación de usuario recibe una descripción del estado de la junta, se
devuelve información sobre qué jugador jugará la siguiente (la descripción del estado de la junta que contiene información codificada).
Cuando la función de evaluación sub-módulo recibe una junta
estatal estima un deseablemente proporcional a la probabilidad de que la victoria de uno de los jugadores (y con posibilidades
de derrotar al rival) valor numérico real.
Durante la construcción del árbol de búsqueda, el algoritmo Minimax sub-módulo debe establecer continuamente de los Estados para cumplir con el tablero, que son los sucesores
legales de un estado dado. Esa es la función de los Estados sucesores de Investigación sub-módulo, que investiga todos
los movimientos posibles (individuales o de captura, posiblemente múltiple) de que un jugador puede hacer a partir de un determinado estado de la junta, determinando de este
modo todos los Estados sucesores respetando las reglas del juego. Tenga en cuenta que todo el conocimiento de las
normas específicas de los inspectores de que el jugador artificial se ha centrado en este sub-módulo.
11
2.3. Estructura de datos y algoritmos utilizados
Unidos para representar el tablero de juego, el módulo tablero
artificial utiliza estructuras de datos que contienen un registro
por cada pieza que se encuentra en la bandeja. Para cada
número se almacena información sobre su situación
(capturado, vivo, movido o promovido), posición en el tablero,
color y tipo (peón o reina). La siguiente figura muestra un
ejemplo de un estado de la junta directiva y la estructura de
datos de la representación correspondiente, en el supuesto de
que la última pieza para mover era la señora de negro en la
casa E-3, después de haber capturado un peón blanco en la
casilla D- 2.
[[ACTIVE peón NEGRO B8]
[ACTIVE F 8 NEGRO pawn] [ACTIVE peón blanco H6]
[H ACTIVE WHITE LADY 4] [MOVED Y NEGRO LADY 3] [ACTIVE peón blanco G3]
[ACTIVE peón blanco G3] [CAPTURADO D2 peón blanco] [LADY ACTIVA Y NEGRO 1]
[ACTIVE L BLANCO 1 peón]]
12
Este tipo de representación es suficiente. De hecho, una casa
vacía es siempre identificable, ya que no existe un registro de
las partes que ocupan.
Por otra parte, esta representación requiere un máximo de 24
entradas (es decir, el número total de partes), en comparación
con los 32 registros que permanentemente requeridos si la
estructura de datos poseen un registro para cada cuadrado
negro. Esto es una ventaja en términos de ahorro de memoria,
dado el gran número de estados que la junta puede tener que
ser producidos en el curso de un estudio de obras de teatro.
13
El algoritmo Minimax con cortes alfa-beta utilizados por el
módulo de jugador artificial es una sofisticación del algoritmo
descrito en [Bratko], que incluye la capacidad de controlar el
nivel de profundidad de la investigación se mueve.
El diagrama de flujo es una descripción abstracta del algoritmo
que implementa el sub módulo de los Estados sucesores de la
Investigación.
14
La siguiente figura muestra una situación de juego en el que las
piezas negras están al lado de juego. Las flechas indican las
posibles alternativas a los movimientos de estas partes.
Representación de un estado y las posibles jugadas de las
piezas negras.
Consiste en el movimiento del árbol que está construido y
registrado por los estados algoritmo de búsqueda del sucesor
en la siguiente figura. Las hojas de este árbol representan los
estados sucesores de Estado presentados por encima del
tablero. Por simplicidad, cada nodo sólo representa en sí los
movimientos realizados por las piezas.
Un ejemplo de búsqueda de estados siguientes a partir de un estado de tablero
15
2.4. Implementación de estructuras de datos utilizados
Las estructuras de datos representativos establece la junta
fueron implementados usando las listas de Prolog. En cuanto
al uso de la base de datos de las cláusulas Prolog, el uso de
listas tiene la ventaja de que el usuario no tiene que
preocuparse por la liberación de memoria utilizada, además de
la amplia utilización de las cláusulas.
Un listado del código Prolog se encuentra en el Anexo 3.
Siguiente lista es la correspondencia entre algunos de los
módulos y sub-módulos descritos en las secciones anteriores y
los procedimientos que implementan Prolog.
Minimax Algoritmo:
Identificación del jugador:
Función de evaluación: Buscar estado siguiente:
Buscar posibles movimientos de captura iniciales
Buscar en varios caminos posibles para capturar una
pieza Buscar más simple posibles movimientos iniciales
16
2.5. Resultados experimentales
El ejemplo de búsqueda de estados siguientes presentados
anteriormente fue probado, con un máximo de un pequeño
procedimiento auxiliar capaz de representar en pantalla el
estado del tablero de juego con caracteres ASCII. "o" y "s"
representan, respectivamente, los peones blancos y negros, y
"O" y "S" representan las damas blancas y negras. Los signos
"-", "+", "*" y "#" indica piezas respectivamente capturados,
activa, movidas y comidas.
Estado del Tablero
. . . . . . . .
. . o+. . . o+.
. . . . . . . $+
. . s+. o+. o+.
. o+. . . . . .
. . . . . . o+.
. o*. o+. . . .
. . . . . . . .
Estados resultantes de capturas inmediatas.
. . . . . S*. .
. . o+. . . o-.
. . . . . . . .
. . s+. o+. o+.
. o+. . . . . .
. . . . . . o+.
. o+. o+. . . .
. . . . . . . .
17
. . . . . . . .
. . o+. . . o+.
. . . . . . . .
. . s+. o+. o-.
. o+. . . S*. .
. . . . . . o+.
. o+. o+. . . .
. . . . . . . .
. . . . . . . .
. . o+. . . o+.
. . . . . . . S+
. . . . o+. o+.
. o-. . . . . .
s*. . . . . o+.
. o+. o+. . . .
. . . . . . . .
Estados que surgen después de la búsqueda de múltiples capturas:
. . . . . . . .
. . El +. . . El +.
. . . . . . . S+
. . . . El +. El +.
. O-. . . . . .
. . . . . . El +.
. O-. El +. . . .
. . S #. . . . .
18
. . . . . . . .
. . El +. . . El +.
. . . . . . . .
. . + s. El +. O-.
. El +. . . . . .
. . . . . . O-.
. El +. El +. . . S *
. . . . . . . .
. S *. . . . . .
. . O-. . . El +.
. . . . . . . .
. . + s. O-. O-.
. El +. . . . . .
. . . . . . El +.
. El +. El +. . . .
. . . . . . . .
. . . . . S *. .
. . El +. . . O-.
. . . . . . . .
. . + s. El +. El +.
. El +. . . . . .
. . . . . . El +.
. El +. El +. . . .
. . . . . . . .
19
Conclusiones
En este trabajo se implementó un programa de reproducción de juego
de damas fichas basadas en el algoritmo Minimax con alfa-beta corte.
El programa permite al usuario elegir el nivel de profundidad de la
investigación llevada a cabo por el algoritmo, simulando así diferentes
niveles de dificultad para el juego.
Además, el programa ofrece una plataforma para juegos entre dos
jugadores humanos en la legalidad de todos los movimientos
realizados se comprueba.
Mejoras La mejora de la función heurística. Tener en cuenta la posición
estratégica de las partes, por ejemplo, dar un mayor valor a los
posicionada más cerca del centro del tablero, o peatones a punto de
ser ascendido a inspectores piezas. Mejor aún sería un ajuste
dinámico de los parámetros de la función heurística sobre el "estilo" de
que el jugador humano juego.
Grabación de archivo indica la tabla y, en su caso, información sobre
la evolución de un juego interrumpido en el medio, de modo que pueda
ser reanudado después.
Dada la diversidad de las normas que se encuentran en los programas
disponibles a través de Internet, el programa podría ser adaptado para
soportar diferentes conjuntos de reglas. Por lo tanto, diferentes
jugadores acostumbrados a diferentes conjuntos de reglas pueden
fácilmente configurar el programa de acuerdo a sus normas deseadas.