int[][] m1 = {{2,4,3},{1,0,6},{7,5,8}}; //matriz início (embaralhado)
int[][] m2 = {{2,0,3},{1,4,6},{7,5,8}}; //matriz segunda
Essas são a primeira e a segunda matriz do Puzzle8, usei ArrayList e preciso saber como eu faço pra mudar o zero da posição [1][1] da matriz para a posição [0][1], ou seja, arrastar o zero pra cima e trocar de posição com o 4. Talves vetorar a posição desses numeros.
As posições a serem trocadas são sempre as mesmas? Você quer que, ao mudar a matriz m1, você obtenha a matriz m2?
Abraço.
Sim, exatamente. Ao trocar o m1 para m2 serão posições diferentes, em que vou guardar essas posições em uma lista de posições da matriz: ArrayList fila = new ArrayList<>();
Porém a minha dúvida é a seguinte: Como eu mudo de posição, sem ter q dar print da matriz q mudou sabe kk.
Eu queria q o zero 0 fosse referencia pra mudar,
tipo 0 está em m1[1][1]
em m2 estará em m2[0][1]
e assim por diantes…
Assim fica mais dinâmico, pq o zero pode escolher qual dos para 4 para se movimentar, mas ao ir pra cima [0][1] ele chegará na sequencia mais rapido… É aquele lance dos nodos… busca em largura… BFS…
Agradeço a ajuda! 