我是一個剛開始在大學學習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'的'值了 - 看起來這將是零。 –