我目前正在使用Java ACM开发一个简单的棋盘,我想用颜色填充每个第二个矩形,但是我不知道该怎么做。
for (i = 0; i < 400; i += 50) {
for (j = 0; j < 400; j += 50) {
GRect rect = new GRect(100, 100, i, j);
add(rect);
}
}
我尝试过if
语句,但是我没有为我工作。
答案 0 :(得分:0)
以您的最少描述,这是我的解决方案。
假设:i和j是棋盘的尺寸,50x50是正方形的尺寸。
假定:GRect的构造函数为(宽度,高度,ipos,jpos),具有左上角的矩形坐标系。
假设:仅为黑色正方形制作矩形(情况2和3)
注意:情况2是(i%100 == 50)AND(
但是,您可能想要的是棋盘格模式:
for (int i = 0; i < 400; i += 50) {
for (int j = 0; j < 400; j += 50) {
if (i % 100 == 0) {
if (j % 100 == 50) {//case 3
add(new GRect(50,50, i, j));
}
} else if (i % 100 == 50) {
if (j % 100 == 0) { //case 2
add (new GRect(50,50, i, j));
}
}
}
}
注意:没有人知道GRect的构造函数是什么,所以我已经尽最大的努力去做。
答案 1 :(得分:0)
您可以保持不断变化的运行状态:
boolean white = true;
for (int i = 0; i < 400; i += 50) {
for (int j = 0; j < 400; j += 50) {
...
white = !white;
或者从i
和j
导出颜色,然后最好是[0,8)索引:
for (i = 0; i < 8; ++i) {
for (j = 0; j < 8; ++j) {
boolean white = (i + j) % 2 == 0;
GRect rect = new GRect(100, 100, i*50, j*50);
rect.setFillColor(white ? Color.WHITE : Color.BLACK);
add(rect);
}
}