franciscogazitua / IIC2113-2024

Consultas sobre el proyecto en las Issues
4 stars 0 forks source link

Buenas prácticas generación de Jugadores #154

Open maxo2727 opened 2 months ago

maxo2727 commented 2 months ago

Hola! Cuales son buenas prácticas para generar jugadores y sus equipos? Por ejemplo, sería buena idea crear una clase "Players" que albergue en un diccionario todas las clases "Player" de los jugadores, en donde cada uno tiene los equipos, habilidades, stats, etc? Y al hacer eso, sería recomendable crear la clase "Players" con jugadores vacíos al inicio del juego, y con métodos ir agregando los integrantes del equipo a medida que se lee el archivo, o cuando se vaya leyendo el archivo, ir creando las clases de jugadores diferentes? Gracias, es para armar una idea del código y preparar la escalabilidad de las siguientes entregas :)

franciscogazitua commented 2 months ago

Hola,

No estoy seguro a que te refieres con Player, dado que me da la impresión que estas confundiendo el concepto de Player con el de Unit. Un jugador es quien, valga la redundancia, juega, por lo que el es quien maneja a su equipo (su colección de unidades). Mientras que la unidad es la entidad que tiene stats, habilidades, etc..

Tu eres libre de decidir como manejas la creación de tu equipo, pero no es necesario sobre complicar las definiciones del juego. En el juego hay dos jugadores, cada uno tiene una colección de unidades y estas tienen stats. No es necesario que tu representación de estos elementos se complique más que eso.

En cuanto al punto de creación de jugadores, puedes decidir hacer esto antes o después de validar la información de los equipos, pero puedes tener en cuenta cosas como el manejo de recursos o la eficiencia computacional al momento de tomar esta decisión. La decisión de como hacer esto dependerá de tu solución

En cuanto a la creación de unidades, esta la puedes hacer desde characters.json y, para poder leer el archivo, necesitarás crear un objeto para las unidades.

De todas formas, recomendaría tener una clase que construya al equipo, para que manejar todas las funcionalidades de esto estén bien separadas y para que tus jugadores y unidades no dependan de la lógica de crear el equipo.

Saludos