我试图通过使用for循环并创建不同颜色的矩形来创建一个棋盘格。我正在使用两个嵌套的for循环:第一个用于处理所有以黑色正方形开头的行,第二个用于处理所有以红色正方形开头的行。我有一个x坐标列表和两个单独的y坐标列表:y1coords是与所有以黑色正方形开头的行相对应的y坐标,而y2coords是与以一个红色正方形开头的行相对应的所有y坐标。
//Nested for loop for every row starting with a black square
List<Double> y1coords = Arrays.asList(0.0,150.0,300.0,450.0);
List<Double> xcoords = Arrays.asList(0.0,75.0,150.0,225.0,300.0,375.0,450.0,525.0);
for (int j=0; j<y1coords.size(); j++)
{
for (int i=0; i<xcoords.size(); i++)
{
if (xcoords.get(i)%2 == 0)
{
Rectangle square = new Rectangle(75,75,Color.BLACK);
square.setX(xcoords.get(i));
square.setY(y1coords.get(j));
root.getChildren().add(square);
}
else
{
Rectangle square = new Rectangle(75,75,Color.RED);
square.setX(xcoords.get(i));
square.setY(y1coords.get(j));
root.getChildren().add(square);
}
}
}
//Nested for loop for every row starting with a red square
List<Double> y2coords = Arrays.asList(75.0,225.0,375.0,525.0);
for (int j=0; j<y2coords.size(); j++)
{
for (int i=0; i<xcoords.size(); i++)
{
if (xcoords.get(i)%2 != 0)
{
Rectangle square = new Rectangle(75,75,Color.BLACK);
square.setX(xcoords.get(i));
square.setX(y2coords.get(j));
root.getChildren().add(square);
}
else
{
Rectangle square = new Rectangle(75,75,Color.RED);
square.setX(xcoords.get(i));
square.setX(y2coords.get(j));
root.getChildren().add(square);
}
}
}
我希望它可以创建一个漂亮的棋盘格,但是它始终使我的第一行全黑,并且不执行任何以红色正方形开头的行。访问https://pbs.twimg.com/media/D6szyy7X4AEMGtk.jpg:large以了解我的意思。
答案 0 :(得分:0)
在第二个嵌套的循环中编辑代码
来自
square.setX(y2coords.get(j));
到
square.setY(y2coords.get(j));
最终结果是
if (xcoords.get(i) % 2 != 0) {
Rectangle square = new Rectangle(75, 75, Color.BLACK);
square.setX(xcoords.get(i));
/*here*/ square.setY(y2coords.get(j));
root.getChildren().add(square);
} else {
Rectangle square = new Rectangle(75, 75, Color.RED);
square.setX(xcoords.get(i));
/*and here*/ square.setY(y2coords.get(j));
root.getChildren().add(square);
}