Come salvare le differenze tra gli oggetti che sono il risultato di cambiamenti casuali?

0

Tengo un oggetto stato del seguente formato:

class State {

    int num1, num2;
    List<String> strings;
    MyObject myObject; // A class I wrote
    // etc.
}

Lo stato cambia molte volte durante l'esecuzione del programma e funge da registrazione di eventi che possono essere successivamente riprodotti (avanti, indietro ...). Questo è simile al salvataggio di una posizione di scacchi.

Attualmente sto salvando la catena di stati, ma le dimensioni del file diventano molto grandi molto velocemente poiché l'intero stato sta effettivamente attraversando una copia profonda. Perché tra uno stato e l'altro le proprietà restano le stesse, voglio salvare le modifiche tra stati. Questo richiederà sicuramente meno memoria / spazio (dai miei calcoli al mio caso, non in generale).

Come suggeriscono la maggior parte delle soluzioni, volevo salvare le azioni / i comandi che conducono da uno stato all'altro. Nell'analogia di scacchi, questo sarà equivalente al salvataggio della mossa giocata. Il problema è che nel mio caso c'è un effetto casuale per le azioni. Questo effetto verrà ricalcolato ogni volta che l'azione viene applicata e quindi lo stato sarà diverso ogni volta che l'azione verrà applicata a quella precedente.

Penso di aver bisogno di salvare il risultato dell'azione. Se l'azione che applico fa num1 += randomNumber , salvo randomNumber . Come salvare le differenze tra gli oggetti che sono il risultato di cambiamenti casuali?

    
posta user1803551 07.04.2016 - 08:10
fonte

0 risposte

Leggi altre domande sui tag