You are on page 1of 40

ESCUELA ACADEMICO PROFESIONAL DE INFORMÁTICA

PROYECTO DE CURSO

Desarrollo de un software simulador de tablero ajedrez para


incremento del coeficiente intelectual para los niños de la institución
educativa Rafael Narváez Cadenillas en la ciudad de Trujillo.

AUTORES:

Muñoz Callirgos Juan Carlos.


Ocas Quiroz Carlos.
Quispe Moreno Julissa Vanessa.
Ramirez Avila Diani.
Sanchez Pedro Edwin Jonatan.

ASESOR:

Jorge David Bravo Escalante

LÍNEA DE INVESTIGACIÓN:

Computación grafica II

TRUJILLO-PERÚ
2016
Índice
1. Realidad problemática ......................................................................................................... 4
2. Objetivos ............................................................................................................................... 4
2.1 objetivo general: ........................................................................................................... 4
2.2 objetivos específicos: .................................................................................................... 4
3. Justificación .......................................................................................................................... 4
3.1 Justificación económica: .............................................................................................. 4
3.2 Justificación pedagógica: ............................................................................................. 4
3.3 Justificación social: ...................................................................................................... 5
4. Antecedentes ......................................................................................................................... 5
4.1 Antecedente 1................................................................................................................ 5
4.2 Antecedente 2................................................................................................................ 6
4.3 Antecedente 3................................................................................................................ 6
4.4 Antecedente 4................................................................................................................ 7
4.5 Antecedente 5................................................................................................................ 7
4.6 Antecedente 6................................................................................................................ 8
4.7 Antecedente 7................................................................................................................ 8
4.8 Antecedente 8................................................................................................................ 9
4.9 Antecedente 9................................................................................................................ 9
4.10 Antecedente 10............................................................................................................ 10
5. Marco teórico...................................................................................................................... 10
5.1 Escala de Terman ....................................................................................................... 11
5.2 Sistema de puntuación EGF:..................................................................................... 12
5.3 sistema de puntuación Elo: ........................................................................................ 12
5.4 Rangos de Elo según la FIDE:................................................................................... 13
5.5 Bases de datos ............................................................................................................. 13
5.6 Desarrollo del software .............................................................................................. 14
5.6.1 Factores Decisivos: ............................................................................................. 14
5.6.2 Para la programación se hará uso de la librería OpenGL: ............................ 14
5.6.3 Para el diseño de las piezas se hará uso de BLENDER: ................................. 14
5.6.4 estructuras de datos a utilizar: .......................................................................... 15
5.6.5 representación del tablero: ................................................................................ 15
5.6.6 Basado en arreglos ............................................................................................. 16
5.6.7 Movimientos de las Piezas.................................................................................. 17
6. Metodología: ....................................................................................................................... 23
6.1 Proceso unificado ....................................................................................................... 23
6.2 Programación por parejas ......................................................................................... 25
7. Desarrollo de la Metodología ........................................................................................ 25
7.1 FASE I: INICIACION ............................................................................................... 25
7.1.1 Requerimientos:.................................................................................................... 25
7.1.2 Estimación de costos.............................................................................................. 26
7.1.3 Calendarización de actividades ............................................................................ 27
7.2 FASE II: ELABORACION ....................................................................................... 29
7.2.1 Determinar el equipo: ........................................................................................... 29
7.2.2 Diagrama de casos de Usos:.................................................................................. 30
7.2.3 Diagrama de Contexto: ........................................................................................ 30
7.2.4 Diagrama cero: ...................................................................................................... 31
7.2.5 Diagrama de base de datos: ................................................................................... 31
7.2.6 Diagrama de clases:................................................................................................ 31
7.2.7 Diagrama de flujo de datos: .................................................................................. 32
7.2.8 Diagrama de interfaces: ......................................................................................... 33
7.3 FASE III: CONSTRUCCION ................................................................................... 35
8. Conclusiones ....................................................................................................................... 39
9. Referencias bibliográficas: ................................................................................................ 40
1. Realidad problemática

El centro Educativo Experimental ´´Rafael Narváez Cadenillas´´, se ubica en los


espacios de la ciudad universitaria de la universidad nacional de Trujillo y ocupa
un área de 8,400 m2.

Estudios estadísticos han demostrado que el nivel de coeficiente intelectual de


los niños de dicha institución según la escala Therman es inferior al promedio,
esto se debe a la carencia de herramientas para que ellos mismos puedan
desarrollar sus habilidades cognitivas o el desconocimiento de las mismas.

Es por ello que motivados por el progreso del desarrollo cognitivo es que
decidimos desarrollar este software simulador de tablero ajedrez para
incremento del coeficiente intelectual para los niños de la institución educativa
Rafael Narváez Cadenillas en la ciudad de Trujillo.

2. Objetivos
2.1 objetivo general:
 Incrementar el coeficiente intelectual mediante un software
simulador de tablero ajedrez para los niños de la institución
educativa Rafael Narváez Cadenillas en la ciudad de Trujillo.

2.2 objetivos específicos:


 Aumentar la cantidad de partidas ganadas por el alumno.
 Reducir la cantidad de movimientos realizados por el alumno.
 Reducir el tiempo de Jackes mates realizados en cada jugada.

3. Justificación
3.1 Justificación económica:

Se justifica económicamente mediante el hecho, que la sala de computo


de la institución educativa debe estar equipado con una tarjeta gráfica en
cada máquina para el mejor desempeño del software y de esta forma se
podrá evitar gastos innecesarios como mantenimiento de las máquinas y
además de evitar la incomodidad del usuario.

3.2 Justificación pedagógica:

Se justifica pedagógicamente ya que al implementar este software en


dicha institución se va a fomentar en el alumno el interés por el deporte,
la competencia y el desarrollo de aptitudes mentales: concentración de la
atención, memoria (asociativa, cognitiva, selectiva, visual), abstracción,
razonamiento y coordinación y así mismo la práctica frecuente de este
juego ayuda a los alumnos a mejorar sus notas.

3.3 Justificación social:

Se justifica socialmente puesto que está comprobado que el ajedrez


favorece la integración ya que no es importante la edad, ni el idioma,
pueden jugar niños con jóvenes o con docentes, así mismo fomentar la
capacidad organizativa y el equilibrio entre lo racional y lo emocional.

Además la práctica de este juego es terapéutica en problemas sociales


como la drogadicción, la falta de autoestima y el ocio improductivo.

4. Antecedentes
4.1 Antecedente 1

• Título: inteligencia algorítmica aplicada al ajedrez.


• Autores: camilo Alexis Silva Silva.
• Lugar: Temuco – 1 de julio de 2012
• Resumen:
Este proyecto utilizo 2 tipos de programas. De tipo A hacía
referencia a una búsqueda basada en ´´fuerza bruta´´, este término
en el área informática consiste en el análisis de todos los
resultados o combinaciones posibles, por lo tanto, el algoritmos de
tipo A examinaría todas las posibles posiciones de cada rama del
árbol de movimientos, usando el 'Algoritmo de Mimimax„.
Por otro lado y para evitar perder tiempo en examinar
movimientos malos, Shannon sugirió los programas de tipo B,
los cuales utilizarían un tipo de „inteligencia artificial estratégica‟,
con la cual solo se analizarían las mejores jugadas de cada
posición, tratando de asimilar el pensamiento humano en una
partida.
• Aporte:
Este proyecto nos aportaría 2 tipos de programas q se utilizó para
llevar a cabo este juego, mediante el uso del programa A
examinamos la posibles posiciones y el uso del programa B
podemos optimizar el tiempo de los movimientos y así analizar las
mejores jugadas de cada posición.

4.2 Antecedente 2

• Título: "aplicación de una estrategia de atención para mejorar la


enseñanza y el aprendizaje a través del juego del ajedrez, en los
estudiantes del grado séptimo de la institución educativa la
inmaculada de puerto rondón – Arauca, liderada por el grupo “los
curiosos del saber”.
• Autores: Fiorella Cáceres, Veltsin Montoya y Plutarco peña.
• Lugar: puerto rondón - Arauca 2015
• Resumen:
El ajedrez en la escuela ayuda al aprendizaje de las áreas del
conocimiento, lo cual implica muchas ventajas al compartirlo en
los momentos pedagógicos; contribuye a desarrollar el
pensamiento reflexivo, abstracto y a mejorar su compromiso
académico.
Mediante la práctica de esta ciencia y este “juego ciencia” se
pretende lograr un pensamiento crítico, reversible y la búsqueda
de distintas estrategias de acuerdo a la situación planteada,
permitiendo así la manipulación, exploración e interiorización de
los conceptos adquiridos. Por lo tanto, se considera que este
“juego ciencia” aporta innumerable cúmulo de aspectos positivos
a la actividad escolar.
• Aporte:
Este proyecto nos muestra los resultados alcanzados con la
práctica del ajedrez con ello nos da un aporte que al momento de
llevar a cabo este software en la institución se logre concretar los
objetivos plateados en nuestro proyecto para el beneficio de los
alumnos y docentes.

4.3 Antecedente 3

• Título: New architectures in computer chess.


• Autores: Fritz Max Heinrich Reul.
• Lugar: 25 de enero del 2009.
• Resumen:
Este proyecto de investigación llego a terminar en el desarrollo de
un software que simula de una manera muy eficiente a un
contrincante humano, es decir el usuario del software podrá tener
una partida de ajedrez con el ordenador como si estuviese jugando
con el campeón mundial e incluso a mas nivel porque está
comprobado que el nivel de juego que puede alcanzar este
software supera incluso la capacidad humana la fortaleza.
 Aporte:
De este proyecto se encuentra en sus estructuras de datos sencillas
y robustas y sus métodos recursivos de fuerza bruta y la
generación automática de máscaras y ataques.

4.4 Antecedente 4

 Título: MacHack Attack


 Autores: Alex Bernstein
 Lugar: Richard Greenblatt - Julio de 1982
 Resumen: En 1957, Alex Bernstein creó el primer programa de
ajedrez realmente completo en IBM. Funcionó en un IBM 704,
uno de los equipos de tubo de vacío última. Le tomó cerca de 8
minutos para hacer un movimiento.
MacHack VI se convirtió en el primer programa para batir un ser
humano (1510 calificación USCF) en un evento de clasificación, el
campeonato de Boston Amateur. MacHack VI ganó dos partidos y
dibujó dos juegos. MacHack VI era fuerte en la apertura y el medio
juego, pero su juego final era muy débil. El final débil era debido a su
heurística centro controlado interferido con el avance de peones
pasados.
 Aporte: Se utilizó en múltiples torneos de ajedrez.

4.5 Antecedente 5

• Título: El ajedrez como indicador de rendimiento.


• Autores: Pablo Echevarria
• Resumen: Mediante Chessmer un software diseñado por estudiantes
de ing. De sistemas se logró utilizar de manera eficaz el ajedrez por
computadora como instrumento de medición intelectual, el programa
utilizo la misma estructura que Mack hack y se tomó en cuenta lo
siguiente.
 Se contemplaron aquellos estudiantes que estaban dispuestos y
motivados para la realización del proyecto.
 Se tomaron en cuenta niños y adolescentes de bajo
rendimiento estudiantil, según evaluaciones y consultas con
sus representantes y unidades educativas del sector.
 Se tomaron en cuenta a niños y adolescentes con problemas de
conducta, según conversaciones con la comunidad y con sus
unidades educativas.
 Muestreo intencional.
• Aporte: Logro medir el desarrollo intelectual en los estudiantes en
Mérida.

4.6 Antecedente 6

• Título: Maquinados de piezas de ajedrez LPAID EN CNC


• Autores: Esteban Peredo Borgonio
• Resumen: El laboratorio de procesos integrados desarrollados por
computadora tiene como base el análisis de un software diseñado por
los alumnos del Instituto Politécnico Nacional (D.F México) a los
alumnos de mecánica se le necesita explicar de una manera ilustrativa
los códigos de procesos automatizados y el método del análisis del
código ha dado resultados muy buenos en dicho centro de estudios. El
software tiene la misma estructura lógica del software de
industrialización mecánica en el modelamiento de procesos
automatizados de producción.
• Aporte: Mejoramiento ilustrativo de los alumnos del instituto
politécnico.

4.7 Antecedente 7

• Título: UC3M
• Autores: Pilar Blanco Martínez
• Resumen: Siguiendo un modelo cliente-servidor. El servidor tiene
como función asignar los turnos al cliente y actualizar el estado de los
actores y de las entidades para enviárselo al cliente según las acciones
que hayan solicitado. Existe un motor emocional encargado de
controlar los gustos, las relaciones con otros clientes, las emociones y,
en esta última versión, las habilidades. En estos momentos existen
varios tipos de clientes:
 El cliente GUI: es el encargado de mostrar la interfaz gráfica.
en este caso no ha sido modificado.
 El cliente Manual: es un cliente que está controlado de forma
manual por el usuario. El usuario se encarga de elegir la acción
que va a ejecutar el cliente.
 El cliente Prodigy: utiliza un planificador de tareas para decidir la
acción a ejecutar.
 El cliente CLIPS: es el encargado de decidir qué acción se va a
realizar, basándose en un sistema de reglas.
 Aporte: Mejoras en los simuladores online de ajedrez.

4.8 Antecedente 8

• Título: virtual chess


• Autores: Dr. Xavier Ruiz Collantes
• Resumen: Consiste en un software que registra las decisiones que
toman varios usuarios respecto a una misma jugada, y mediante el
registro de jugadas registra las mejoras y como es que los usuarios
interpretan los diferentes movimientos del oponente.
Mediante los diversos registros de este software se puede determinar
si es que una persona tiene poco, mediano o elevado potencial para
este deporte.
• Aporte: Plantea una idea revolucionaria para analizar potenciales.

4.9 Antecedente 9

 Título: Best-reply search in multi-player chess


 Autores: Markus Esser
 Resumen: Para introducir el dominio de prueba en el que se
realiza la investigación, esta tesis se inicia con una explicación de
las reglas de multi-jugador de ajedrez. Después, los algoritmos de
búsqueda existentes y sus mejoras son descritos. Se proponen,
nuevos algoritmos de búsqueda siguientes basados en la búsqueda
de mejor respuesta. Estos algoritmos son explican y analizan.
La idea principal de superar los inconvenientes de la mejor
respuesta es dejar que los opositores jugar el mejor movimiento en
relación con el ordenamiento movimiento estático en lugar de
pasar como se hace en busca de mejor respuesta.

Después de una descripción de la función de evaluación, que se


requiere para ganar el juego razonable en el área de multi-jugador de
ajedrez, los algoritmos propuestos se prueban contra los ya existentes.
Los experimentos muestran que uno de los algoritmos propuestos,
saber, BRS1, C-1, es capaz de superar a los algoritmos existentes en
el dominio de varios jugadores de ajedrez. En BRS1, C-1, el
oponente con el más fuerte contra-movimiento es permitido para
realizar una búsqueda, mientras que los otros oponentes juegan el
mejor movimiento en relación con el movimiento estático ordenar.
Debido a los buenos resultados en varios jugadores de ajedrez, BRS1,
C-1 es una búsqueda prometedora algoritmo. Otras pruebas tienen que
realizarse para detectar si también funciona bien en otros ámbitos que
multi- jugador de ajedrez.

 Aporte: Plantea soluciones mejores de algoritmos de búsqueda


óptima.

4.10 Antecedente 10

 Título: Simulador de mates en ajedrez


 Autor: Cristian Cuesta, José Monje.
 Resumen:
Este simulador propone una solución complementaria al curso E-
learning de aprendizaje de ajedrez en la UMNG. Con el cual es
estudiante resolverá problemas específicos preestablecidos con el
objetivo de ganar la partida, aparte de eso debe realizarlo en cuatro
(4) o menos movimientos, siendo siempre ejercicios propuestos para
solucionar por máximo en esa cantidad de movidas. La aplicación
contará con información sobre el tablero de ajedrez y sobre las piezas,
basados en la notación algebraica de ajedrez, utilizada como estándar
actual para escribir una partida
 Aporte:
Este proyecto nos ayudaría a evaluar y mejorar las jugadas en nuestro
proyecto para así el alumno cumpla con el objetivo de ganar.

5. Marco teórico

 Como se mide el coeficiente intelectual


El amplio uso de las pruebas de cociente o coeficiente intelectual es
significativo para muchas personas. Aunque hay quienes lo
consideran una verdadera pérdida de tiempo y aunque tiene muchos
factores controversiales, dignos de intensas discusiones, estas
pruebas, de más de 100 años de antigüedad, aún siguen teniendo gran
aceptación en la población.
5.1 Escala de Terman

La medición del coeficiente intelectual mediante la escala Terman


consiste en la evaluación del coeficiente intelectual mediante 6
exámenes:

o Inteligencia general
o Conocimiento
o Razonamiento fluido
o Razonamiento cuantitativo
o Proceso visual-espacial
o Memoria de trabajo

Test que evalúa el coeficiente mental del individuo (CI), manejando


10 sub-tests que conforman las siguientes áreas: Cultura y
conocimientos generales; Juicio y sentido común; capacidad de
razonamiento; Aritmética; juicio practico; habilidad para razonar,
abstraer, generalizar, y pensar en forma organizada; Planeación,
comprensión y organización de conceptos verbales; y Análisis y
síntesis en el manejo de aspectos cuantitativos.

En correlación con la edad si es que el evaluando es menor de 18 y


mayor de 60, se suman los 6 exámenes en ellos mismos se califica 10
variables, de las calificaciones de estos exámenes se llama el
promedio y se multiplica por el factor T(factor de edad intelectual).

Sobre esa base, se le clasifica, dentro de cada una de esas


Dimensiones, en los Niveles siguientes:

 Deficiente

 Inferior al Término Medio

 Término Medio

 Superior al Término Medio

 Superior.
5.2 Sistema de puntuación EGF:

Lo que hace es estimar la probabilidad que tenemos de ganar o perder


una partida. Para ello tiene en cuenta nuestra categoría (puntos) y la
de nuestro rival.

Suponemos que si jugamos con Mikami la probabilidad de ganar será


muy pequeña (prácticamente nula), mientras que si lo hacemos con
alguien que acaba de aprender las reglas será muy alta (prácticamente
seguro que ganamos). También si jugamos con alguien de nuestro
mismo nivel (mismos puntos) la probabilidad de ganar será del 50%.

El otro dato que necesitamos para saber los puntos que nos van a dar
o quitar es, si al final, hemos ganado o perdido la partida. De este
modo lo único que necesitamos saber para calcular la diferencia de
puntos es:

 Nuestros puntos: Rn (Rating nuestro)


 Los puntos del adversario: Ra (Rating adversario)
 Resultado de la partida: S (1 - ganamos / 0 -
perdemos), S del inglés score.
La función matemática que se utiliza es la gaussiana y tiene esta
fórmula:
Pn = P(D) = 1 / (e ^ (D/a) - 1)

5.3 sistema de puntuación Elo:

Es un método para calcular la fuerza relativa de los jugadores de


juegos como el ajedrez. Fue inventado para mejorar el sistema de
clasificación vigente de los jugadores de ajedrez.

Se dice que un jugador de ajedrez tiene categoría FIDE cuando


consigue un porcentaje de puntuación en sus enfrentamientos con
contrincantes que previamente ya han obtenido dicha categoría.
5.4 Rangos de Elo según la FIDE:

5.5 Bases de datos

Una base de datos o banco de datos es un conjunto de datos


pertenecientes a un mismo contexto y almacenados sistemáticamente
para su posterior uso. En este sentido; una biblioteca puede
considerarse una base de datos compuesta en su mayoría por
documentos y textos impresos en papel e indexados para su consulta.
Actualmente, y debido al desarrollo tecnológico de campos como
la informática y la electrónica, la mayoría de las bases de datos están
en formato digital, siendo este un componente electrónico, y por ende
se ha desarrollado y se ofrece un amplio rango de soluciones al
problema del almacenamiento de datos.
5.6 Desarrollo del software

 Para poder llevar a cabo este proyecto será necesario el estudio de


algunos algoritmos que nos permitan reconocer las piezas en el
tablero de ajedrez y así poder crear una clase que se encargue de
la detección de éstas, para luego pasarle al programa principal la
información de la pieza identificada.
 A continuación se listan los factores decisivos para el logro del
objetivo del proyecto y las actividades necesarias para poder
superar estos factores:

5.6.1 Factores Decisivos:

 Código para el reconocimiento del tablero.


 Código para el reconocimiento de las piezas.
 Código para la detección de jugadas realizadas.
 Código para la validación de las jugadas.
 Código para el reconocimiento del estado actual del
juego.
 Ángulo de la cámara.

5.6.2 Para la programación se hará uso de la librería


OpenGL:

OpenGL (Open Graphics Library) es una especificación


estándar que define una API multilenguaje
y multiplataforma para escribir aplicaciones que produzcan
gráficos 2D y 3D. La interfaz consiste en más de 250
funciones diferentes que pueden usarse para dibujar escenas
tridimensionales complejas a partir de primitivas geométricas
simples, tales como puntos, líneas y triángulos.

5.6.3 Para el diseño de las piezas se hará uso de


BLENDER:

Blender es un programa informático multiplataforma,


dedicado especialmente al modelado, iluminación,
renderizado, animación y creación de
gráficos tridimensionales. También de composición digital
utilizando la técnica procesal de nodos, edición de vídeo,
escultura (incluye topología dinámica) y pintura digital. En
Blender, además, se puede desarrollar vídeo juegos ya que
posee un motor de juegos interno.

5.6.4 estructuras de datos a utilizar:

Usamos el software Blender para diseñar las piezas y el


tablero, exportando luego los ficheros en formato OBJ (como
Peon.obj, Alfil.obj, etc.), los cuales serán importados a
nuestro código fuente.
Usaremos la estructura de datos de clases para cada pieza, en
las cuales cargaremos nuestros archivos .OBJ a su respectiva
clase.
Crearemos una matriz 8 x 8 representando ello al tablero de
ajedrez, donde cada elemento de la matriz tendrá un código de
la clase Pieza la cual definirá el tipo de pieza ubicado en dicha
posición.

5.6.5 representación del tablero:

Las estructuras de datos se utilizan para representar piezas y


su respectiva posición, esta es la clave del rendimiento en
cuanto a movimientos y evaluaciones de posiciones.
Requerimientos:
Un software de ajedrez bien estructurado debe cumplir con
ciertos requerimientos que entreguen una completa
descripción de una posición de ajedrez, estos elementos son
los siguientes:
 El lugar de cada pieza en el tablero.
 El jugador que tiene el turno de mover.
 El estado del enroque de ambos jugadores.
 La coronación del peón, que se estará considerando
siempre la elección de una reina.

Tipo de representación del tablero:

Existen muchos tipos de representación para un tablero de


ajedrez, de los cuales 5 son los más usados:
 Lista de piezas
 Basado en arreglos
 El método 0x88
 Tabla de bits (bitboard)
 Codificación de Huffman

 Para este proyecto hemos utilizado el método basado en


arreglos

5.6.6 Basado en arreglos

Una de las más utilizadas, básicamente consiste en una matriz


de 8x8 (Figura 3), es decir 64 casillas donde a cada una de
ellas se les asigna un valor numérico, de la siguiente forma
(esto para las piezas blancas, para las negras se consideran los
mismos números pero negativos):
Casilla vacía: 0, Peón: 1, Caballo: 2, Alfil: 3, Torre: 4, Dama:
5, Rey 6

Figura 01: Matriz del tablero.

 Posición Inicial De Las Piezas

Figura 02: Posición de las piezas.


Consideraciones Generales

 Los jugadores mueven, alternadamente, una de sus piezas,


a excepción del caso del enroque en que se mueven dos.
 Empieza el jugador que tiene las blancas el cual tiene una
pequeña, pero sustancial, ventaja.
 En un mismo escaque solo puede haber una única pieza,
nunca más de una simultáneamente.
 Es posible ocupar un escaque que previamente estaba
ocupado por una pieza adversaria: dicha pieza propia
ocupará este escaque y la pieza adversaria se retirará del
juego.
 Cada pieza tiene su manera de moverse, que se conserva a
lo largo de toda la partida, incluyendo los movimientos
especiales.
 Las únicas piezas que pueden saltar son los caballos, o
también las torres en el caso excepcional del enroque.
 No hay obligación de comer, pero sí sacar de jaque al rey,
no pudiendo mover otra pieza que no involucre dicha
acción.

5.6.7 Movimientos de las Piezas

 Movimientos Del Caballo

El movimiento del caballo es en "forma de L", o sea, mueve


dos escaques en horizontal o vertical y después un escaque
vertical u horizontal, o viceversa. El caballo puede saltar
sobre cualquier pieza suya o del adversario. La captura ocurre
cuando una pieza del adversario se encuentra en el último
escaque del movimiento realizado por el caballo.

Figura 03: Movimientos del caballo.


 Movimientos Del Peón

El peón tiene las reglas de movimiento más complejas del


ajedrez:

Un peón se mueve hacia adelante una casilla, si este


escaque está vacante. Si todavía no se ha movido, el peón
también tiene la opción de mover dos escaques hacia
adelante, siempre que ambos escaques estén vacantes. Los
peones no se pueden mover hacia atrás.

Los peones son las únicas piezas que capturan de manera


diferente de cómo se mueven. Un peón puede capturar una
pieza adversaria en cualquiera de los escaques diagonales
en frente del peón (pero no se puede mover a esos escaques
si están vacíos).

El peón también participa en los dos movimientos


especiales: captura al paso y promoción.

Figura 04: Movimiento de peón.


 Coronación Del Peón

Si un peón avanza hasta la octava fila, entonces debe ser


cambiado como parte del movimiento y en la misma casilla
por una reina, torre, alfil o caballo del mismo color, siendo
la opción del jugador la elección.

Figura 05: Coronación del peón.

 Movimientos De La Torre

La torre se mueve en direcciones ortogonales, es decir, por


las filas (horizontales) y columnas (verticales), no
pudiendo moverse por las diagonales. Ella puede moverse
tantas casillas como se desee por las columnas y filas, pero
solo en una dirección en cada movimiento.

Figura 06: Movimiento de la torre.


 Movimientos Del Alfil
El alfil se mueve en direcciones diagonales, es decir,
en la dirección de los escaques del mismo color. Se
puede mover tantas casillas como desee por las
diagonales, pero solo en una dirección (cada juego),
existe el alfil del escaque negro y el alfil del escaque
blanco, y no pueden cambiar de color durante el juego.

Figura 07: Movimientos del alfil.

 Movimientos De la Reina
La reina puede moverse tantas casillas como desee o
pueda, en diagonal, vertical u horizontalmente, pero
solo en una dirección a cada turno, la dama (o reina)
se desplaza con los movimientos de todas las demás
piezas (excepto el caballo) desplazándose cuántos
escaques quiera.

Figura 08: Movimientos de la reina.


 Movimientos Del Rey
El rey puede moverse en todas las direcciones un solo
escaque a la vez, mientras el movimiento no sea para
un escaque amenazado por una pieza adversaria. El
rey también puede capturar cualquier pieza adversaria,
mientras que no tenga otra pieza defendiéndola. Un
rey no puede dar jaque mate a otro rey.

Figura 09: Movimientos del rey.

 Enroque
El enroque consiste en mover el Rey dos escaques
hacia la Torre, y luego pasar a la torre de la casa del
otro lado Rey junto a él. El enroque solo está
permitido en las siguientes condiciones:
No se haya movido previamente ni rey ni la torre
ninguna vez.
El rey no puede estar en jaque, pasar o terminar el
movimiento en un escaque amenazado por el tablero.
Sin embargo, la Torre puede estar siendo amenazada o
pasar por un escaque amenazado, en caso de enroque
largo durante el movimiento.
No haya ninguna pieza entre el rey y la torre, ya sea
propia o contraria. Ni el escaque al que se mueve el
rey al final del enroque, ni los escaques por los que ha
de pasar el rey, estén atacados por piezas contrarias.
Existen dos clases de enroque: el enroque corto (que
se simboliza con 0-0 y el enroque largo que se
simboliza con 0-0-0).
Figura 10: Enroque.

 Jaque
Un rey está en jaque cuando está siendo atacado por al
menos una pieza adversaria. Un jugador no puede hacer
ningún movimiento que coloque o deja a su rey en jaque aun
pudiéndole ofrecer. Las posibles maneras de salir de jaque
son:
Mover el rey a un escaque en el cual no se ve amenazado.
Capturar la pieza que amenaza (posiblemente con el rey).
Bloquear el jaque mediante la colocación de una pieza entre
el rey y la pieza mortal del adversario.
Si no es posible salir del jaque, el juego ha terminado.
En los juegos informales, es costumbre de anunciar "jaque" al
hacer un movimiento que pone al rey del oponente en jaque.

Figura 11: Jaque.


6. Metodología:
6.1 Proceso unificado

Impulsado por el caso de uso, centrado en la arquitectura, iterativo e


incremental.
Hace el intento por obtener los mejores rasgos y características de los
modelos tradicionales del proceso del software, pero en forma que
implemente muchos de los mejores principios del desarrollo ágil del
desarrollo de software.
Reconoce la importancia de la comunicación con el cliente y los métodos
directos para describir su punto de vista respecto de un sistema (el caso de
uso).
Hace énfasis en la importancia de la arquitectura del software y “ayuda a
que el arquitecto se centre en las metas correctas, tales como que sea
comprensible, permita cambios futuros y la reutilización”.
Aplica un flujo del proceso iterativo e incremental, lo que da la sensación
evolutiva que resulta esencial en el desarrollo moderno del software.

Figura 02: proceso unificado.


El proceso unificado ágil consta de cuatro fases que el proyecto atraviesa
de forma secuencial. Dichas fases son:

1) Iniciación: El objetivo de esta fase es identificar el alcance inicial


del proyecto, una arquitectura potencial para el sistema y obtener,
si procede, financiación para el proyecto y la aceptación por parte
de los promotores del sistema.
2) Elaboración: Mediante esta fase se pretende identificar y validar
la arquitectura del sistema.
3) Construcción: El objetivo de esta fase consiste en construir
software desde un punto de vista incremental basado en las
prioridades de los participantes.
4) Transición: En esta fase se valida y despliega el sistema en el
entorno de producción.
La siguiente figura muestra un esquema de estas cuatro fases
incluyendo, además, los objetivos y tareas fundamentales de cada
una, así como los diferentes hitos por los que pasa el proyecto (a
saber, LCO, LCA, IOC y PR):

Figura 02: fases del proceso unificado.


6.2 Programación por parejas
La programación en pareja es una técnica que sugiere que todo el
código producido en un proyecto de desarrollo de software sea
implementado por dos personas juntas, delante de la misma
computadora, las personas se turnan en el teclado. A la persona que
esta con las manos en el teclado se lo llama conductor y a la otra
navegador.
La programación externa (XP) recomienda que dos personas trabajen
juntas en una estación de trabajo con el objeto de crear código para
una historia. Esto da un mecanismo para la solución de problemas en
tiempo real (es frecuente que dos cabezas piensen más que una) y para
el aseguramiento de la calidad también en tiempo real (el código se
revisa conforme se crea).
A medida que las parejas de programadores terminan su trabajo, el
código que se desarrollan se integra con el trabajo de los demás. En
ciertos casos, esto lo lleva a cabo a diario un equipo de integración.
En otros, las parejas de programadores tienen la responsabilidad de la
integración. Esta estrategia de “integración continua” ayuda a evitar
los problemas de compatibilidad e interfaces y brinda un ambiente de
“prueba de humo” que ayuda a descubrir a tiempo los errores.

7. Desarrollo de la Metodología
7.1 FASE I: INICIACION

7.1.1 Requerimientos:

 Requerimientos funcionales:
o Verificar datos del usuario:
 DNI y contraseña.
o Registrar usuario:
 DNI
 Nombres
 Apellidos
o Cambiar disponibilidad del usuario.
o Verificar el modo del juego.
 Jugar vs pc.
 Jugar vs online.
o Validar tablero:
 El lugar de cada pieza en el tablero.
o Validar movimientos:
 El jugador que tiene el turno de mover.
 El estado del enroque de ambos jugadores.
 La coronación del peón, que se estará
considerando siempre la elección de una reina.
 Verificar estados de Jackes mate.
o Mostar lista de usuarios disponibles.
o Validar puntación
o Mostar y obtener tiempo de duración de cada partida.
o Mostrar la evolución del coeficiente intelectual del
usuario.

 Requerimientos no funcionales:
o Ordenadores con tarjeta gráfica de video (2GB) y con
capacidad mínima de almacenamiento de 500GB.
o Web (velocidad mayor a 4MB).
o Servidor.
o Sistema operativo Windows.
o Gestor de base de datos (Mysql).
o El usuario tenga conocimiento de cómo utilizar el
computador.
o Seguridad.
o Escalabilidad.
o Confiabilidad.
o Estabilidad.

7.1.2 Estimación de costos


 Factor de complejidad
 Potencial Humano

 Costo de equipo

 Costos varios

7.1.3 Calendarización de actividades

7.1.4
7.2 FASE II: ELABORACION

7.2.1 Determinar el equipo:

TAREA ASIGNADA GRUPO ENCARGADO

Definir requerimientos Quispe Moreno Julissa


Ramirez Avila Diani
Muñoz Callirgos Juan

Estimación de costos. Sánchez Pedro Jonatan


Ocas Quiroz Carlos

Calendarización de actividades. Todo el grupo

Diagramas de Casos de uso Quispe Moreno Julissa


Ramirez Avila Diani
Muñoz Callirgos Juan
Diagrama de base de datos. Sánchez Pedro Jonatan
Ocas Quiroz Carlos

Diagrama de clase. Quispe Moreno Julissa


Ramirez Avila Diani
Muñoz Callirgos Juan
Diagrama de flujo de datos. Sánchez Pedro Jonatan
Ocas Quiroz Carlos

Diseño de interfaces. Quispe Moreno Julissa


Ramirez Avila Diani
Muñoz Callirgos Juan
Diseño y modelado de piezas y tablero en Quispe Moreno Julissa
blender en formato obj. Ramirez Avila Diani
Muñoz Callirgos Juan
Programación del juego de Ajedrez. Sánchez Pedro Jonatan
Ocas Quiroz Carlos

Programación para el reporte estadístico del Quispe Moreno Julissa


coeficiente intelectual del alumno. Ramirez Avila Diani
Muñoz Callirgos Juan
7.2.2 Diagrama de casos de Usos:

7.2.3 Diagrama de Contexto:


7.2.4 Diagrama cero:

7.2.5 Diagrama de base de datos:

7.2.6 Diagrama de clases:


7.2.7 Diagrama de flujo de datos:
7.2.8 Diagrama de interfaces:
7.3 FASE III: CONSTRUCCION

1.1. Modelado de Piezas

Alfil Reina Rey

Peón Caballo Torre

Tablero
1.2. Programación de la Aplicación

 Algoritmos utilizados
El siguiente algoritmo genera los movimientos validos de
la pieza peón blanco o negra:

void Peon::generarValidos ()
{
int variable;
if (equipo == COLOR_BLANCO)
variable = -1;
else
variable = 1;

if (punto.x < DIMENSION - 1 && punto.x > 0)


{
if (colorCelda(punto.x + variable, punto.y, buffer) == LUGAR_LIBRE)
{
if (equipo == COLOR_BLANCO)
{
setTablero(tester, tablero);
pasar(punto.x, punto.y, punto.x + variable, punto.y, tester);
buscaReyBlanco(reyX, reyY, tester);

if (!hayJaqueBlanco(reyX, reyY, tester))


buffer[punto.x + variable][punto.y] = MOVER_VALIDO;
}
else
if (equipo == COLOR_NEGRO)
{
setTablero(tester, tablero);
pasar(punto.x, punto.y, punto.x + variable, punto.y, tester);
buscaReyNegro(reyX, reyY, tester);

if (!hayJaqueNegro(reyX, reyY, tester))


buffer[punto.x + variable][punto.y] = MOVER_VALIDO;
}
variable *= 2;

if (colorCelda(punto.x + variable, punto.y, buffer) ==


LUGAR_LIBRE && equipo == COLOR_BLANCO &&
punto.x == 6)
{
setTablero(tester, tablero);
pasar(punto.x, punto.y, punto.x + variable, punto.y,
tester);
buscaReyBlanco(reyX, reyY, tester);

if (!hayJaqueBlanco(reyX, reyY, tester))


buffer[punto.x + variable][punto.y] =
MOVER_VALIDO;
}

if (colorCelda(punto.x + variable, punto.y, buffer) ==


LUGAR_LIBRE && equipo == COLOR_NEGRO &&
punto.x == 1)
{
setTablero(tester, tablero);
pasar(punto.x, punto.y, punto.x + variable, punto.y,
tester);
buscaReyNegro(reyX, reyY, tester);

if (!hayJaqueNegro(reyX, reyY, tester))


buffer[punto.x + variable][punto.y] =
MOVER_VALIDO;
}

variable /= 2;
}

if (enTablero(punto.x + variable, punto.y + variable))


if (esEnemigo(punto.x + variable, punto.y + variable,
buffer, equipo))
{
if (buffer[punto.x][punto.y] == PEON_BLANCO)
{
setTablero(tester, buffer);
pasar(punto.x, punto.y, punto.x + variable,
punto.y + variable, tester);
buscaReyBlanco(reyX, reyY, tester);

if (!hayJaqueBlanco(reyX, reyY, tester))


buffer[punto.x + variable][punto.y + variable]
= COMER_VALIDO;
}
if (buffer[punto.x][punto.y] == PEON_NEGRO)
{
setTablero(tester, buffer);
pasar(punto.x, punto.y, punto.x + variable,
punto.y + variable, tester);
buscaReyNegro(reyX, reyY, tester);

if (!hayJaqueNegro(reyX, reyY, tester))


buffer[punto.x + variable][punto.y + variable]
= COMER_VALIDO;
}
}

if (enTablero(punto.x + variable, punto.y - variable))


if (esEnemigo(punto.x + variable, punto.y -
variable, buffer, equipo))
{
if (buffer[punto.x][punto.y] ==
PEON_BLANCO)
{
setTablero(tester, buffer);
pasar(punto.x, punto.y, punto.x + variable,
punto.y - variable, tester);
buscaReyBlanco(reyX, reyY, tester);

if (!hayJaqueBlanco(reyX, reyY, tester))


buffer[punto.x + variable][punto.y -
variable] = COMER_VALIDO;
}
if (buffer[punto.x][punto.y] ==
PEON_NEGRO)
{
setTablero(tester, buffer);
pasar(punto.x, punto.y, punto.x + variable,
punto.y - variable, tester);
buscaReyNegro(reyX, reyY, tester);

if (!hayJaqueNegro(reyX, reyY, tester))


buffer[punto.x + variable][punto.y -
variable] = COMER_VALIDO;
}
}
}
}

8. Conclusiones

 El ajedrez no solo es un juego que nos puede dar muchas horas de


diversión, también puede ser una actividad que sirva para desarrollar
nuestra mente e incluso para mejorar nuestra salud a largo plazo.
 El ajedrez puede ser una herramienta eficaz para ayudar en la
formación de un niño, de hecho cualquier actividad que obligue a
ejercitar nuestra mente siempre será positiva.

 El Ajedrez promueve excelentemente el logro de la independencia


cognoscitiva, que se manifiesta en una adecuada representación del
problema y en un proceso mental activo en la búsqueda de soluciones
personales.

 Después de todo el estudio realizado y como entendido en el área


informática, me parece destacable la inteligencia artificial junto con
la complejidad algorítmica utilizada en la implementación de un
software ajedrecístico, la unión de éstas dan nacimiento a códigos y
métodos autónomos, capaces de decidir y determinar entre un sin fin
de situaciones la mejor estrategia a seguir.
9. Referencias bibliográficas:
 http://es.slideshare.net/jaimeizq/proyecto-de-base-de-datos-1537934
 http://www.clubgomadrid.org/articles/ptosegf.php
 http://www.ajedrezcanillejas.com/consulta_ELO.html
 http://nosolopau.com/2012/06/07/mas-sobre-el-proceso-unificado-
agil-fases-y-disciplinas/

You might also like