作为一个班级,我们在日食中创建了一个跳棋板。我想出了这个代码,但它没有显示一个跳棋板,它只有三个白色盒子,其余的是黑色。 这是我的代码:
import acm.program.*;
import acm.graphics.*;
import java.awt.*;
public class checkgame extends GraphicsProgram
{
private static final int ROWS = 8;
private static final int COLUMS = 8;
public void run()
{
int sqSize = getHeight() / ROWS;
for (int i = 0; i<ROWS; i++)
{
for (int j = 0; j<COLUMS; j++)
{
int x = j*sqSize;
int y = i*sqSize;
GRect sq = new GRect (x,y,sqSize,sqSize);
sq.setFilled(((i+j)/2)!=0);
add(sq);
}
}
}
}
我出错的任何想法? 谢谢!
答案 0 :(得分:1)
而不是
((i+j)/2)!=0
你想用
((i+j)%2)!=0
您的初始表达式恰好是真实的三倍(0,0 / 0,1 / 1,0),这就是您看到三个白框的原因。校正后的版本取决于(i + j)/ 2是奇数还是偶数 - 在这种情况下,模运算符是常见的选择。