我是一个刚开始在大学学习java的学生。所以在今天的课程中,我的老师给了我一些任务,包括我必须使用StdIn.Draw库编写程序的一个任务,当你输入一个数字N时,它打印出一个高N宽的NxN棋盘。我决定使用一个NxN数组,并将某些元素设置为一个值(例如true),将其他元素设置为另一个值。之后,我使用该库来绘制与我刚刚创建的阵列相对应的棋盘。它看起来像这样:我想在java中绘制一个NxN棋盘,但是在打印出白色的空白屏幕
class chessboard {
public static void main(String[] args) {
int N = StdIn.readInt();
boolean[][] hi = new boolean[N][N];
double r = 1/N;
int x = 0;
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
if ((int)(i+j)%2 == 0)
hi[i][j] = true;
else {
hi[i][j] = false;
}
}
}
StdDraw.setXscale(0.0, 5.0);
StdDraw.setYscale(0.0, 5.0);
int i = 0;
int j = 0;
double a = 1.0;
double b = 1.0;
while ((a < N) && (i < N)){
while ((b < N) && (j < N)){
if (hi[i][j] != true){
StdDraw.setPenColor(StdDraw.BLACK);
StdDraw.filledSquare(a ,b, r);
}
else {
StdDraw.setPenColor(StdDraw.RED);
StdDraw.filledSquare(a ,b, r);
}
b = b + r;
j++;
}
b = 1.0;//reset b after the inner while loop
a = a + r;
i++;
}
}
}
当我测试运行它,它只是打印出一个白色的空白屏幕,没有别的。我找不到任何算法错误,并且我试图调整初始a和b坐标的大小以及X和Y的缩放倍数,但它不起作用。我试图问我的朋友,但他们也不知道。
这是我的问题的截图:
很抱歉,如果我的英语不好,因为我不是一个母语。如果你能回答,请尽量简单,因为我刚开始学习编码。谢谢。
哦另一回事。我正在学习基于这本书:http://introcs.cs.princeton.edu/java/home/
检查r'的'值了 - 看起来这将是零。 –