Assim eu tenho um código em q eu tenho uma matriz 3x3 e tenho q gerar um arraylist todos os possíveis sucessores dela. Exemplificando:
Com a Matriz:
2 0 1
2 0 0
1 0 2
Eu deveria Gerar todos os possíveis sucessores com o Número 2 ou seja:
2 2 1 2 0 1 2 0 1 2 0 1
2 0 0 2 2 0 2 0 2 2 0 0
1 0 2 1 0 2 1 0 2 1 2 2
Dai eu criei o seguinte código:
public class Main {
public static void main(String[] args) {
int Matriz[][]= new int[3][3];
Matriz[0][0]=2; Matriz[0][1]=0; Matriz[0][2]=1;
Matriz[1][0]=2; Matriz[1][1]=0; Matriz[1][2]=0;
Matriz[2][0]=1; Matriz[2][1]=0; Matriz[2][2]=2;
Opcoes(Matriz, 2);
}
public void Opcoes(int Mat[][],int k){
ArrayList Opcoes = new ArrayList();
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(Mat[i][j]==0){
int[][] Matriz = new int[3][3];
Matriz=Mat;
Matriz[i][j]=k;
Tabuleiro X1= new Tabuleiro();
X1.setTab(Matriz);
Opcoes.add(X1);
Matriz=null;
}
}}
}
public class Tabuleiro {
private int Tab[][]=new int[3][3];
public int[][] getTab() {
return Tab;
}
public void setTab(int[][] Tab) {
this.Tab = Tab;
}
public void EscreveMatriz(){
System.out.println(Tab[0][0] + " " + Tab[0][1] + " " + Tab[0][2] + "\n"
+ Tab[1][0] + " " + Tab[1][1] + " " + Tab[1][2] + "\n"
+ Tab[2][0] + " " + Tab[2][1] + " " + Tab[2][2] + "\n");
}
}
O problema é quando eu mando o array escrever todos os tabuleiros…todos ficam assim:
2 2 1
2 2 2
1 2 2
Eu ja tentei todas as variações possíveis, com vetor e sempre da o mesmo problema…Alguém pode me ajudar?