Chinchon es una aplicación creada como proyecto del ramo Diseño y Progrmación Orientada a Objetos [ELO329]. El objetivo fue crear una aplicación de juego de cartas en el lenguaje de programación Java, para entretener y plantear un nuevo reto al usuario.

Origen del problema

Chinchon es un juego de cartas que ofrece una variedad de modelos de juego y varias dinamicas para disfrutar con los amigos. En la busqueda de versiones virtuales de este juego, nos encontramos con que no existian muchas variedades.

Por esta razón se decidio crear una versión en Java de este poco conocido, pero muy entretenido juego.

 

Análisis del Sistema

En la app desarrollada se utilizaron los siguientes elementos para su correcto funcionamiento:

Al ser un juego de mesa, se necesita primeramente tener un objeto "Mazo" que contenga las "cartas" que componen el mazo y un "pozo" donde descartar las cartas que no se utilizan.

Para poder interectuar, se necesita que cada "jugador" posea una "mano" en la cual podrá ir haciendo sus "jugada"

Para que exista una real interacción entre lo que ocurre en el juego y en la interfaz gráfica, es necesario tener una "mesa" donde se ubiquen todos los componentes.

sistema

Cómo jugar

El chinchón es un juego de baraja española con 48 cartas, entre de 2 o más jugadores.

Objetivo:

Entre los jugadores se escoge un número de puntos máximo. El jugador que alcance dicha cantidad de puntaje pierde el juego. Por lo que el objetivo de cada "mano" que se juega es sumar la menor cantidad de puntos posibles.

Desarrollo del juego:

Se decide quien es el que reparte, partiendo el otro jugador la mano. Cada jugador recibe un total de 7 cartas. El jugador que comienza jugando saca una carta del mazo, prosiguiendo a descartar una de su mano a la zona de descarte.

El siguiente jugador en jugar puede elegir entre recojer una del mazo o de la pila de descarte, dependiendo de que carta le sea más util.

En todas las siguientes jugadas se repite el mismo patron.

Si se llegase a agotar las cartas del mazo, se da vuelta la pila de descartes, siendo este el nuevo mazo.

Como juntar cartas:

Las cartas se pueden juntar en trios o escalas.

Un trío se compone de 3 cartas del mismo número independiente de la pinta Ejemplo: "5 de Oro","5 de Bastos","5 de Copa".

Una escala se compone de 3 o más cartas continuas de la misma pinta Ejemplo: "6 de Copa","7 de Copa","8 de Copa"

La idea es juntar la mayor cantidad de cartas de la mano para quedarse con la menor cantidad de puntos posibles.

Cerrar la mano:

Para poder terminar una mano, es necesario "cortar" la jugada. Esto solo se puede hacer si se cumplen 2 condiciones.

1. La carta con la que se desea cortar es un número menor o igual que 5.

2. Los puntos que queden en la mano del jugador que deseaba cortar deben ser menor o igual a 5.

Puntajes:

El puntaje asignado a cada jugador durante una mano es el correspondiente a las cartas no juntadas o sobrantes.

En el caso de que el jugador que cortó juegue sus 7 cartas, el puntaje asignado para su mano es de -10 puntos.

En el caso de que el jugador juntase una escala de 7 cartas continuas (es decir, toda la mano es una escala) este gana todo el juego indemiatamente.

La jugada anterior se conoce como "Chinchón"

Suerte y a jugar.

Algunos casos de uso del programa son.

Ejemplo 1 de caso de uso

casouso11

casouso12

casouso13

Ejemplo 2 de caso de uso

casouso21

casouso22

casouso23

Ejemplo 3 de caso de uso

casouso31

casouso32

Diagramas UML

Diagrama de clases

 

Dificultades durante el desarrollo

Durante el desarrollo de la aplicación se encontraron diversas dificultades. Dentro de las que más afectaron el desarrollo y atrasaron la realización del programa se encuentran:

El manejo de la gran cantidad de jugadas y excepciones que pueden existir en las distintas manos, hace que sea de mucha dificultad el poder controlarlas todas, por lo que idear los algoritmos para ordenar y organizar la mejor jugada fue una de las dificultadades más grandes enfrentadas

Programar el bot contra el que se enfrenta el jugador, para que fuera el mismo sistema quien analizara las jugadas y pudiese elegir que cartas botar y jugar, dando de esta manera un bot inteligente el cual de verdad jugase chinchón e intentase ganar

Arreglar ciertos bugs gráficos que iban saliendo "sin explicación alguna" mientras se avanzaba en el codigo, tambien fue una de las dificultades que se enfrentaron durante el desarrollo

 

Test de prueba 1

Para demostrar el uso de esta aplicación, se mostrará el segundo caso de uso para "cortar" el mazo

Se ve que se comienza a jugar una mano, por lo que se prosigue a juntar jugadas para luego intentar cortar.

prueba1

Se sigue jugando y se juntan un trio de 2 y un trio de 3, por lo que se intenta cortar con el 8, saliendo el siguiente mensaje.

prueba2

Tal como se era de esperar, no se puede cortar el juego aún, ya que si se procede a cortar con el 8, esta carta es mayor que 5, por lo que no cumple las condiciones. Por otra parte, si se intenta a cortar con el 1, la suma de puntos es mayor que 5, por lo que tampoco es posible cortar.

prueba3

Se sigue jugando la mano hasta poder cortar de manera efectiva como se muestra a continuación. Se ordenan las cartas y se muestran las del rivales. Luego, se muestra un puntaje de ambos jugadores

prueba4

Se reparte nuevamente y se comienza la nueva mano, y como se puede apreciar, los puntos anteriores se quedan guardado en el juego.

prueba5

Test de prueba 2

Como muestra 2, se presenta la forma en que se reinicia el juego.

Se observa que se acaba de ganar una mano por lo que se reparte de nuevo.

Tal como se puede ver en las siguientes capturas,el puntaje sacado por ambos jugadores es guardado.

prueba6

prueba7

Luego, se quiere comenzar un nuevo juego, por lo que se abre en la pasteña Menu la opción de nueva partida.

prueba8

Se reparte una nueva mano, comenzado el juego desde 0, y tal como se puede ver, los puntajes de ambos jugadores son reiniciados en 0

prueba9

prueba10

Compromisos

Aún falta mucho para que Chinchon esta completa al 100%, entre las cosas que faltan y queremos incluir, se encuentran el de poder incluir un modo de juego distinto aparte de jugar contra la maquina. Es decir, poder crear mediante conexión red, jugar chinchón contra uno o más jugadores "reales"

Aparte de lo anterior, se quiere mejorar la jugabilidad del sistema, agregando también así niveles de dificultades de juego.