Integrantes: Angelo Amadei
Nicolás Frois
Eduardo Valdivia
Este juego de mesa, similar al ajedrez salvo que la posición de las fichas las decide uno, contiene una serie de reglas que permiten cambiar el comportamiento de las fichas según la altura en la que se encuentren, dado que es posible apilar hasta tres fichas a voluntad. Al momento de eliminar una ficha del oponente, solo la superior en caso de estar apiladas, es posible incluirla como ficha propia en el próximo turno.
El sistema desarrollado opera por turnos, dado que cada jugador debe mover una ficha a la vez. Al seleccionar la ficha que se desea mover, se muestran las opciones de movimiento en función del estado de esta y luego, habiendo realizado el movimiento, se actualiza el sistema cambiando la posición de la ficha (en caso de ser un movimiento válido) y pudiendo eliminar una ficha de oponente.
Se reconocen 3 casos de uso:
A continución se presenta los diagramas solicitados::
Diagrama de clases (UML):
Descripción de clases:
Diagrama de secuencia:
A continuación se presentan pruebas de los tres casos de uso estipulados anteriormente:
Las reglas
Fue muy dificil encontrar todas las reglas del juego. La documentación al respecto es tremendamente escaza y se limita a unos cuantos blogs que hablan del juego. Realizando una exhaustiva búsqueda y recurriendo a historiales de páginas en la red, se logró encontrar todas las reglas y condiciones del juego.
IA
Poder generar una automatización de las posibles decisiones tomadas por un jugador, dependiendo del escenario en el que se encuentre, no fue fácil de plantear ni de implementar. En Gungi, el jugador tiene múltiples jugadas posibles, pero se reconocieron desiciones óptimas en ciertos casos. Para la solucion de este problema utilizamos un sistema de valoración de jugadas, se le asigna una nota a cada posible jugada en cierto turno, y se evalua cual de ellas posee una mejor nota, correspondiendo a la mejor jugada este turno, la valoración se debe realizar de acuerdo a parametros tales como, si la ficha se come una oponente o no, si sube de piso, etc sin embargo por temas de tiempo en la entrega del proyecto se opto por una solucion menos elegante y mas simple, la valoración resulta de un proceso de azar, que solo respeta las reglas del juego, por lo que no siempre las jugadas de la IA resultan ser la mejor.
Para descargar el código fuente, haz click aquí