Ajedrez
Grupo:
Miguel Corchero Lázaro
Juan José Domínguez Berrueta
Pablo Fernández Mantecón
Javier Hertfelder Piñeiro
Eduardo Moreno Martínez de Lecea
Álvaro Torroba Lombera
Índice
1.- Demostración de la aplicación
1.1.- Representación FIDE
1.2.- Situaciones concretas posibles
2.- Aspectos tecnológicos
2.1.- Pruebas
2.2.- Patrones utilizados
3.- Posibles futuras entregas
Representación FIDE
• A continuación se muestran algunos de
los posibles movimientos en
representación FIDE:
– e4 (peón a e4)
– Dxf3 (dama come a f3)
– 0-0 (enroque corto)
– C3e2 (caballo de fila 3, a e2)
– Etc…
Demostración de la aplicación
• Situación de enroque: Esta situación se
corresponde con el movimiento del rey
“intercambiándose” con una de las dos
torres.
Demostración de la aplicación
• Situación de comer con 2 peones:
Demostración de la aplicación
• Situación de comer con 2 caballos
Demostración aplicación
• Situación de coronación
Demostración aplicación
• Situación de rey en jaque
Guardar una partida
• Posibilidad de guardar una partida con las
siguientes oportunidades:
– Continuar la partida posteriormente.
– Practicar una situación concreta.
– Asegurar el estado de la partida.
Cargar una partida
• Posibilidad, obvia tras el apartado anterior,
de recargar una partida guardada. Para
ello solo deberemos introducir la palabra
“guardar”, y a continuación se nos pedirá
la ruta de almacenamiento.
Rendirse
• Si uno de los jugadores desea rendirse.
Podrá hacerlo introduciendo la palabra
“rendirse” durante la partida.
Ofrecimiento de tablas
• Si uno de los jugadores quisiese ofrecer
tablas al rival, podría hacerlo
introduciendo “tablas” por teclado.
• De esta forma, el otro jugador recibiría la
petición de tablas, pudiendo aceptarlas
(terminando la partida), ó rechazarlas
(continuando la misma).
Jugar contra la maquina
• Gracias a la Inteligencia Artificial, y
mediante el uso de heurísticas
consultadas a expertos en ajedrez, se
tiene la posibilidad de jugar contra la
máquina.
Aspectos tecnológicos
• Para realizar esta práctica nos hemos apoyado
en dos lenguajes:
– Java
– Prolog para la inteligencia artificial
• Se han realizado muchas pruebas funcionales
para comprobar el correcto funcionamiento del
ajedrez.
• Gracias a los patrones impartidos en la
asignatura, hemos resuelto problemas que
hubiésemos tardado mucho tiempo en resolver.
Pruebas
• Se han realizado todo tipo de pruebas
funcionales y unitarias para comprobar el
correcto funcionamiento del ajedrez.
• El framework utilizado para las pruebas ha
sido JUnit.
Patrones utilizados
•
•
•
•
•
Factory method (Tablero Factory)
Observer (Vistas)
Façade (Login)
Proxy (Fide)
Singleton (Log)
Posibles futuras entregas
• Integrar la rama de identificación y registro
de usuario junto con la rama del juego de
ajedrez.
• Implementar el ajedrez en una aplicación
distribuida.
• Vistas de una partida.
• En un futuro muy lejano, poder elegir la
opción de realizar un movimiento gore.
Posibles futuras entregas
• Total integración con inteligencia artificial,
dotando al sistema de gran capacidad de
razonamiento.
• Aprendizaje automático por parte del
sistema, de forma que vaya aprendiendo a
medida que juega las partidas.
• Posibilidad, gracias a la IA, de dotar al
sistema de varios niveles.
Descargar

Ajedrez