Closed tomasBustamante closed 5 years ago
Hola @tomasBustamante , con respecto a esto:
Por otro lado, si la idea es que la clase Juego sea una especie de fachada, los ataques deberían modelarse de manera distinta (más allá de lo mencionado en el issue #12). Habría que pensar de qué manera interactuaría el usuario con el juego a la hora de decidir la acción. Si selecciona casilleros entonces no debería pasar los colocables por parámetro sino las posiciones.
Sería viable, para no modificar como se modeló los ataques, que una vez que el usuario selecciona un Casillero
se mostrara cuales son las acciones posibles para ese Colocable
ubicado en ese Casillero
? Es decir, internamente se 'devuelve' el Colocable
y, según si es de una instancia de una clase u otra, se habilitan las opciones disponibles.
Depende, habría que ver por lo menos una prueba de esa estrategia para entender el contrato de lo que planteás y ver luego cómo es que se determinan las acciones posibles en función del tipo de colocable.
En el commit 5ded400 se creó la clase Juego pero no se incluyeron sus pruebas unitarias reduciendo así la cobertura un 4,79%. Es necesario crear la prueba primero para poder definir el contrato de la clase.
No es necesario tener referencias a ambos jugadores. Se puede tener únicamente un atributo del jugador actual, el cual tenga una referencia al otro y se vayan alternando en cada cambio de turno. De esta forma, el siguiente código:
se podría simplificar de la siguiente manera, delegando la responsabilidad al jugador:
Además, haría falta otorgarle algún atributo al jugador para que se pueda distinguir uno de otro (como por ejemplo el nombre que será ingresado por el usuario al comienzo del juego).
Por otro lado, si la idea es que la clase Juego sea una especie de fachada, los ataques deberían modelarse de manera distinta (más allá de lo mencionado en el issue #12). Habría que pensar de qué manera interactuaría el usuario con el juego a la hora de decidir la acción. Si selecciona casilleros entonces no debería pasar los colocables por parámetro sino las posiciones.