所以基本上,我需要生成一个1和0的数组,然后填充一定数量的矩形。矩形是“正方形”,需要形成一个更大的正方形。比方说,我希望我的大方形宽500像素,高100个方格,所以我需要10个长度为10的阵列 - 我部分成功 - 然后我需要填充小方块,具体取决于如果数组1-1为1,则应该填充生成的数组的索引,例如1-1,依此类推。如何根据数组中的项填充矩形?
public void run() {
int tableSize = readInt("Enter the size of the table in pixels: ");
int squareNumber = readInt("Enter the number of squares in a row: ");
filler(arrayGen(squareNumber), tableSize, squareNumber);
}
private double[] arrayGen(int A) {
double[] arr1 = new double[A];
for (int i = 0; i < arr1.length; i++) {
arr1[i] = (Math.random() < 0.5 ? 0 : 1);
}
return arr1;
}
private void filler(double[] A, int x, int y) {
for (int i = 0; i < A.length; i++){
for (int x1 = 0; x1 < x; x1+=(x/y)) {
GRect rect1 = new GRect (x1, 0, x/y, x/y);
rect1.setFilled(true);
rect1.setFillColor(Color.blue);
if (A[i] == 1) {
add(rect1);
}
}
}
}
}
这就是我想出了,它仍然缺少一些地方,下面几行即如何将产生,但就像我上文所述,我的主要问题是与数组。
谢谢!
数组的主要问题是什么;我真的不知道。我可以说这个世代如果它/他们似乎是不必要的,那么也许会抛弃这个想法。另外,如果不确定是否会添加,我不会花费实例化GRect的资源。首先检查它是否应该;然后创建它,然后添加它。 – ChiefTwoPencils
数组的问题是在**填充**中,程序只读取数组中的第一个项目,并决定将要添加的所有矩形将填充/清空 –
所以*被*添加*但只有那些数组值为'1'被填充? – ChiefTwoPencils