如何填充第二个矩形/ Java / ACM /棋盘

时间:2018-11-18 20:11:50

标签: java acm

我目前正在使用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语句,但是我没有为我工作。

2 个答案:

答案 0 :(得分:0)

以您的最少描述,这是我的解决方案。

这是可平铺的表示形式。 1/2/3/4代表“案例” keep in mind that this is tile-able

假设: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;

或者从ij导出颜色,然后最好是[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);
    }
}