juego de damas

19
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

Upload: universidad-nacional-de-trujillo

Post on 08-Jul-2015

397 views

Category:

Software


6 download

DESCRIPTION

Juego de Damas en Prolog Navez Maiños Alex Sergio Pita Chavez Quilcate Blas Steve

TRANSCRIPT

Page 1: Juego de damas

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

Page 2: Juego de damas

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

Page 3: Juego de damas

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

Page 4: Juego de damas

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.

Page 5: Juego de damas

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.

Page 6: Juego de damas

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.

Page 7: 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.

Page 8: Juego de damas

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.

Page 9: Juego de damas

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.

Page 10: Juego de damas

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.

Page 11: Juego de damas

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]]

Page 12: Juego de damas

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.

Page 13: Juego de damas

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.

Page 14: Juego de damas

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

Page 15: Juego de damas

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

Page 16: Juego de damas

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+. . . .

. . . . . . . .

Page 17: Juego de damas

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 #. . . . .

Page 18: Juego de damas

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 +. . . .

. . . . . . . .

Page 19: Juego de damas

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.