Closed joanplaja closed 4 years ago
Bones @miquelbofill , Com que amb el desfer passaven coses rares hem volgut tirar per el copiar i despres recuperar aquesta versió del chess. Hem provat varies coses peró no ens acabem de sortir. Pots recomanar-nos alguna guia o algo de com fer-ho correctament perque no sigui les mateixes referencies al copiar. He mirat ala teoria i no he sapigut veure res. Gracies,
OK, és més simple el copiar (i no té perquè ser especialment ineficient). Però realment, si voleu evitar-vos problemes heu d'optar per una deep copy (fins a la profunditat necessària: la dels objectes immutables). Aquí podeu trobar unes pistes: https://www.baeldung.com/java-deep-copy
Si són lliestes miquel d'objectes mutables hem de fer un clone per cada element dins de la llista?
És el més recomanable, i de fet imprescindible si aquests objectes poden ser modificats abans que recuperis la còpia. Pots programar una operació deepCopy recursiva, no és difícil.
Bones miquel, Hem afegit tots la implementació clonable a les classes necesaries. Varies coses:
if(first.getClass().getName()=='Piece')cloned.first = (Piece) this.first.clone() .. etc tant per first com per second
Gracies!!
Amb això del Pair
en tractar-se de genèrics no hi ha més remei que fer alguna cosa així. De totes maneres et pots estalviar el super.clone()
perquè en aquest cas el supertipus immediat és Object
i no faria res.
La implementació de clone() del Chess
la veig bé.
En @DavidNagisa333 está arreglant els erros al desfer, un cop estigui podre acabar de provar el funcionament del minMax a la CPU suposant qué després no en surten de nous. De mentres em ficaré a fer una versió molt simple que funcioni el coneixament.