Я хочу сохранить 2D-массив как элемент Queue. после выполнения некоторых операций над ним.
как проблема 8 головоломок
это мое целевое состояние, и исходное состояние берется из файла
final static int [] [] goal = new int [] [] {{3,2,1}, {5,6,4}, {7,9,8}};
public static Queue queue = new LinkedList ();
public void ARotateRight(int [][]parent){
int swap=parent[0][0];
parent[0][0]=parent[1][0];
parent[1][0]=parent[1][1];
parent[1][1]=parent[0][1];
parent[0][1]=swap;
queue.add(parent);//add element in array
}
public boolean DFS(){
while(!queue.isEmpty()){
int[][] queueblock = queue.remove();
//printing array
for(int i=0 ;i<3;i++){
for(int j=0 ;j<3;j++){
System.out.print(queueblock [i][j]);
}
System.out.println();
}
if(isGoal(queueblock)){
return true;
}
ARotateRight(queueblock);
ARotateLeft(queueblock);
BRotateRight(queueblock);
BRotateLeft(queueblock);
CRotateRight(queueblock);
CRotateLeft(queueblock);
DRotateRight(queueblock);
DRotateLeft(queueblock);
}
return false;
}
//main function.
public static void main(String[] args) throws FileNotFoundException {
DFSTask dfsTask=new DFSTask(); //DFSTask is my class name
File file=new File("D://newfile.txt");
Scanner input=new Scanner(file);
int [][] block=new int[3][3];
for(int i=0 ;i<3;i++){
for(int j=0 ;j<3;j++){
block [i][j]=Integer.parseInt(input.next());
}
}
queue.add(block); //adding initial state in Queue
boolean check=dfsTask.DFS();
System.out.println(check);
}
}
после печати все элементы очереди совпадают.
Я ожидаю, что все элементы должны быть разными