Algoritmos utilizados - PabloNaranjo78/Proyecto_1_Datos_1 GitHub Wiki

Del JSON al deck de los jugadores

Para este proyecto se necesitó transformar un conjunto de datos tipo array dentro de un archivo .JSON, a objetos que irán a ser las cartas de los decks de los jugadores. Para este propósito se decidió utilizar objetos tipo POJO, para poder hacer el uso de métodos de ciertas clases a través de otras clases. Para empezar, se creo un objeto tipo TypeCarta, el cual va a dar forma a todos los atributos que tendrán las cada uno de las cartas, las cuales vendrán en una array, los métodos de dicho objeto serán simples getters que retornaran un atributo de estas cartas, según sea cual se pida. En seguida habrá otra clase Cartas, el cual organizará los datos hacia los atributos de TypeCartas, haciendo que los objetos Cartas cuente con esos los atributos de TypaCartas, la misma contara con un metodo getTcarta(), quien retorna la variable tcarta, quien es tipo TypeCarta, su propósito es que se pueda acceder a los métodos de TypeCarta a través de Cartas. Posteriormente se crea el objeto Stack, quien será la estructura a partir de quien se creará los decks de los jugadores, para mas información sobre esta estructura, consulte en la sección de Estructuras de datos desarrolladas. Finalmente está la clase DeckPlayer, la cual es la parte principal para el desarrollo de los decks, dado a que su función es crear un deck con 16 cartas aleatorias a partir de un archivo .JSON (el cual se deserializa aqui mismo) para cada usuario. Para esto se utiliza la ayuda de GSON para poder deserializar el archivo .JSON, y se vincula con la clase Cartas, para que la información del JSON adquiera la forma de TypeCartas. Otros métodos que se pueden encontrar acá son, pushXCards(Stack deck, int cant), quien recibe el deck tipo Stack a quien se le quiere agregar una cantidad de cartas aleatorias, y la cantidad de cartas que se quieren agregar, este método se encarga de agregar un numero previamente especificado de cartas aleatorias a un deck también previamente especificado. Y también se puede encontrar el método popXCard(Stack deck, int cant), quien al igual que el método anterior, recibe un deck y una cantidad, y se encarga de eliminar un numero de cartas especificado a un deck especificado. También contiene un getter que se encarga de poder acceder a otros métodos de clases que se vinculan con ésta.

Uso de sockets para comunicación entre usuarios