Closed GianLucaSpagnolo closed 1 year ago
Buenass, ahi elevo la duda porque lo de poder "inicializar en un estado en particular" a mi tambien me hacia ruido. Por otro lado tenia 2 comentarios:
Palos
? No convendría directamente usar el enum?Con respecto al uso del enum, no lo teniamos visto asi, por lo que ya lo modificamos para que quede mas practico. Y sobre el mezclado del mazo, nosotros lo habiamos planteado como una funcion de mezclado aleatorio:
public void mezclar() {
ArrayList<Carta> auxiliar = new ArrayList<>();
while (!baraja.empty()) {
auxiliar.add(sacarCarta());
}
Random generador = new Random();
int cantidad = auxiliar.size();
for (int i = 0; i < cantidad; i++) {
int indice = generador.nextInt(0, cantidad - i);
agregarCarta(auxiliar.get(indice));
auxiliar.remove(indice);
}
}
No teniamos en consideracion una semilla aleatoria, pero este metodo como la creacion correcta del mazo (con las cartas que queremos) se pudieron testear automaticamente, y el mezclado es efectivo. Sin embargo, pensandolo con la semilla podemos imaginar que el testeo de la clase Klondike (con el armado de la mesa y el mazo determinado) se puede volver mil veces mas sencillo si sabes cuales cartas hay, por lo que vamos a ver en modificarlo.
Estaremos atento para ver que onda con la inicializacion del juego 👀 y tambien: hasta que punto conlleva la etapa 1? incluyendo la ejecucion del juego tambien o solo con los modelos de datos y la logica base de las reglas??
En la etapa1 debe estar implementada la lógica completa de un solitario. Debe ser "casi" jugable (digo casi porque no les estamos pidiendo que se pueda jugar por consola, sino que cuando lleguen a la etapa 3 solo tengan que enlazar la parte visual con la logica que ya tienen, modificando el codigo pero no teniendo que agregar nada super nuevo). En otras palabras, tienen que hacer tambien la ejecución del juego
Genial buenisimo! No tenemos mas dudas por el momento, pero dejo el Issue abierto para ver que onda con la inicializacion del juego en un estado particular
No me respondio ninguno de los 3 profes pero maca me dijo que vendria a ser pasarle como parametro el estado actual del solitario. Es decir, las diferentes pilas/stacks de cartas. Me cierra que sea por ahi. Cualquier cosa les aviso
Buenas noches! Nos ha surgido una duda al implementar la inicializacion del juego. A continuacion esta nuestra clase Klondike que contiene la mesa del juego, la cual dispone de las columnas y los mazos correspondientes:
Nuestra semilla aleatoria se basa en un mezclado aleatorio de la baraja de cartas para que esta sea repartida en cada columna como lo dispone, en este caso, las reglas del klondike. De esta forma, la clase Klondike dispone de todos los metodos necesarios para realizar las verificaciones y los movimientos correspondientes (aunque no son definitivos, ya que podemos modularizarlos para mejorar la apariencia del codigo) pero nuestra consulta proviene en el momento de querer inicializar un juego en un estado particular. Con esta implementacion, seria tan facil como enviar (via un setter) una instancia de mesa con su respectivas barajas y columnas con cartas. Pero, que tan recomendable es esto pensando para la etapa 2 del tp? Es valido o existiria una forma mas conveniente para aprovechar la persistencia usando nuestra querida clase Mesa?
Y otra pregunta: en esta Etapa 1 tenemos que programar la logica de la ejecucion del juego via las reglas determinadas? (no la interfaz). O con tener la logica base de las reglas y del modelo de datos es suficiente?