Este documento describe un programa desarrollado para simular el juego de damas entre un jugador humano y la computadora. El programa implementa el algoritmo Minimax con cortes alfa-beta para que la computadora evalúe posibles movimientos y capture piezas de forma estratégica. El tablero y piezas se representan mediante estructuras de datos en Prolog que almacenan información como posición, color y estado. El programa permite al usuario elegir el nivel de profundidad de búsqueda para ajustar la dificultad.
14. Juego de damas
367
Compartir
Me gusta
Bajar
Universidad Nacional De Trujillo
Follow
0 3 0 0
Published on 01de julio de 2014
Juego de Damas en Prolog
Navez Maiños Alex
Sergio Pita Chavez
...
Published in: Software
0 comentarios
0 Me gusta
Estadísticas
Notas
Post
Sea el primero en comentar
Juego de damas
1. 1. 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. 2. 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 delprograma. ............................ 8 2.3. Estructura de
datos y algoritmos utilizados ...............11 2.4. Implementación de estructuras de datos
15. utilizados ..........15 2.5. Resultados experimentales ..........................16
Conclusiones............................................19 Mejoras ................................................19
3. 3. 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. 4. 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. 5. 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. 6. 6 II. Capítulo 2: Descripción y algoritmos utilizados. 2.1. Características. 2.1.1. Eltablero
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. Elestado 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. 7. 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. 8. 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
16. 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. 9. 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. 10. 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. 11. 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. 12. 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. 13. 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.
17. 14. 14. 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. 15. 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. 16. 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. 17. 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. 18. 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. 19. 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 deseada