Ajedrez Grupo: Miguel Corchero Lázaro Juan José Domínguez Berrueta Pablo Fernández Mantecón...

18
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

Transcript of Ajedrez Grupo: Miguel Corchero Lázaro Juan José Domínguez Berrueta Pablo Fernández Mantecón...

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

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

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

Í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

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

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…

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

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.

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

Demostración de la aplicación

• Situación de comer con 2 peones:

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

Demostración de la aplicación

• Situación de comer con 2 caballos

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

Demostración aplicación

• Situación de coronación

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

Demostración aplicación

• Situación de rey en jaque

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

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.

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

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.

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

Rendirse

• Si uno de los jugadores desea rendirse. Podrá hacerlo introduciendo la palabra “rendirse” durante la partida.

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

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

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

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.

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

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.

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

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.

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

Patrones utilizados

• Factory method (Tablero Factory)

• Observer (Vistas)

• Façade (Login)

• Proxy (Fide)

• Singleton (Log)

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

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.

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

• 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