我似乎无法让这段代码工作。我正在做的是用 2 位数字的所有可能组合填充一个数组(每个数字分别代表一个形状和颜色)。然后,我试图使用这个数组来填充一个 2d 数组,在该数组中我创建了前一个数组中包含的元素的所有可能组合。出于某种原因,我的二维数组充满了所有 '21' 而不是任何类型的组合。
如果需要,我可以在课堂上发布其余代码,但它相当长。此方法中的最后一个循环仅用于打印它们以进行测试,之后将被删除。
public void combinations()
{
combinations = new int[numShapes*numColors];
int index = 0;
for(int l = 1; l <= numShapes; l++)
for(int h = 1; h <= numColors; h++)
if(index + 1 != combinations.length + 1)
combinations[index++] = (l*10) + h;
else
break;
int[][] combs = new int[(int)Math.pow((numShapes*numColors),numPositions)][numPositions];
//Fills the array with all '21' , fix this
int ind = 0;
for(int f = 0; f < 16; f++)
for(int i = 0; i < numShapes; i++)
for(int j = 0; j < numColors; j++)
if(ind != combs.length+1){
combs[ind] = new int[]{combinations[numShapes], combinations[numShapes], combinations[numColors]};
ind++;
}
else
break;
for(int p = 0; p < 2; p++){
for(int g = 0; g < 3; g++){
System.out.print(testFormat(combs[p][g]/10, combs[p][g]%10) + " ");
}
System.out.println();
}
}