RodrigoToroIcarte / IIC2113-2023-1

6 stars 0 forks source link

Clean Code Objeto que pertenece y contiene un Data Struct #198

Open drosselot opened 11 months ago

drosselot commented 11 months ago

Hola! Para evitar el "hack" que se menciono en clases de usar Supertsar.Name = "MANKIND" para disminuir el daño que recibe el jugador, se me ocurrió una solución que requeriría tener un objeto dentro de un data struct, y este objeto a la vez contendría el data struct para poder modificarlo. Mi pregunta es si esto es una solución razonable que no rompe Clean Code o debo buscar otra forma de hacer esto?

RodrigoToroIcarte commented 11 months ago

La forma correcta de manejar la habilidad de Mankind se hará obvia cuando empieces a agregar cartas con bonus de daños (ej, el Jockeying for Position). Antes de eso, toda solución es media hack. Podrías incluir un atributo en Player que sea cero por defecto pero que con Mankind lo cambies a -1. Y que cuando Player reciba daño le sumes el valor de ese atributo al daño. Eso te ahorra el "if" en el sentido de que al ejecutar la habilidad de Mankind al inicio del juego puedes cambiar ese valor en Player.

Igual hay mil formas de hacer esto y ninguna es necesariamente mejor que la otra. La única solución que es mala mala es tener el if Superstar.Name == "MANKIND" metido al momento de recibir daño :P.