Ajedrez
Grupo:Miguel Corchero Lázaro
Juan José Domínguez BerruetaPablo Fernández Mantecón
Javier Hertfelder PiñeiroEduardo 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.
• 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.
Posibles futuras entregas