Proyecto "GUNGI"

Integrantes: Angelo Amadei

                    Nicolás Frois

                    Eduardo Valdivia

Contenidos
  1. Descripcion del problema
  2. Analisis del problema y casos de uso
  3. Diagramas UML
  4. Pruebas
  5. Descargas

Descripción

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.


Analisis

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.

Casos de uso

Se reconocen 3 casos de uso:

  1. Jugador v/s Jugador: Ambos utilizan el mouse y juegan por turnos. Primero, se posicionan todas las fichas en el tablero de forma alternada entre los jugadores. Luego, comienza la partida. La forma en que un jugador logra ganar la partida, es eliminando al comandante del oponente.


  2. Jugador v/s IA: Idéntico que el caso anterior, solo que uno de los jugadores es la máquina.


  3. IA v/s IA: Ambos jugadores son autómatas, permitiendo ser espectador de una partida de Gungi.


Diagramas

A continución se presenta los diagramas solicitados::

    Diagrama de clases (UML):



      Descripción de clases:



    Diagrama de secuencia:


Pruebas

A continuación se presentan pruebas de los tres casos de uso estipulados anteriormente:

  1. Jugador v/s Jugador:


  2. Jugador v/s IA:


  3. IA v/s IA:

Dificultades

    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.


Descargas

Para descargar el código fuente, haz click aquí