Cauko,
zacinam s Javou a uz odzaciatku som narazil na problem s ktorym neviem pohnut ani po hladani na nete.
Mam classu state, kde mam ulozeny 2D array z integerov (reprezentacia hlavolamu), konstruktor a getter ktory dane pole vrati.
Kód:
public class state
{
private int x, y;
private int[][] status;
state(int a, int b, int[][] array) //constructor
{
this.x = a;
this.y = b;
this.status = Arrays.copyOf(array, array.length);
}
int[][] getStatus()
{
return Arrays.copyOf(status, status.length);
}
}
V maine si chcem vytvorit 2 objekty, zaciatocny a konecny stav hlavolamu, ktore zadava uzivatel. Nacitam prvy vstup ktory ulozim do inputarray, nasledne vytovrim objekt a vypisem do konzoly:
Kód:
state startstate = new state(x, y, inputarray);
System.out.println(Arrays.deepToString(startstate.getStatus()));
Doteraz vsetko funguje ako ma. Problem nastane ked vytvorim druhy objekt rovnakym sposobom (pole inputarray bolo medzitym znova nacitane zo vstupu):
Kód:
state endstate = new state(x, y, inputarray);
Ked ale po tomto chcem vypisat obsah arrayov v jednotlivych objektoch, obidve metody getStatus vratia rovnake hodnoty, konkretne rovnaky array ako bol nacitane do objektu endstate a array v objekte startstate sa prepisal.
Co robim zle, resp kde konrketne mam chybu? Ako docielim aby oba objekty mohli mat jedinecne a rozdielne udaje, ku ktorym by som mohol pristupovat a menit ich nezavisle na sebe?