Ver Mensaje Individual
  #13 (permalink)  
Antiguo 27/09/2015, 15:44
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: ¿Describir situaciones y el cómo se llega a ellas?

Cita:
Iniciado por Tachikomaia Ver Mensaje
En verdad les agradecería que se centren en la pregunta que hago... Es decir, me están hablando de métodos alternativos, sinceramente no sé si me ayuda o no, pero no es lo que estoy pidiendo.
La solución que te acabo de mostrar resuelve exactamente el problema que estás planteando:

Cita:
Iniciado por Tachikomaia
¿Describir situaciones y el cómo se llega a ellas?
El tipo/clase/estructura de datos Juego (en el ejemplo de arriba) DESCRIBE la situación actual del juego de tatetí mediante la propiedad Casilleros. Es decir, esa propiedad contiene el estado actual del tablero, ya que es una lista del tipo Casillero en la que cada casillero tiene una posición y un valor, que puede ser Vacío, o Marcado, y si es Marcado tendrá la referencia al jugador que lo marcó.

Luego, para saber cómo se llegó a esa situación, no se necesita como vos planteás una copia exacta de la situación inmediatamente anterior, si no que lo que se necesita es la lista de pasos que se dieron desde el principio de la partida hasta llegar a la situación actual, y esa lista de pasos está contentida en la propiedad Jugadas, que es una lista del tipo Jugada en la que cada jugada hace refencia a un casillero, y al jugador que realizó la jugada.

Con esta lista se puede reconstruir todo el juego desde el principio, sin necesidad de persistir (guardar) ninguno de los puntos intermedios, a menos que se desee claro.

Luego, teniendo una estructura de datos adecuada, se puede serializar/deserializar (en algún formato que quieras por ejemplo XML o JSON) la misma desde un archivo (por ejemplo) para guardar/leer fácilmente, sin necesidad de realizar la escritura del archivo campo por campo (o por "variable" si querés).

Finalmente, si te interesa hacer algo como esto de manera genérica (quitando el ejemplo específico del ta-te-ti, pero teniendo una estructura que te permita guardar pasos, estado y actual y condiciones, te puedo mostrar como haría usando Generics.

Última edición por agleiva; 27/09/2015 a las 16:16