gpt4 book ai didi

java - 未绘制 8x8 网格的最后一个正方形,使用两个嵌套的 FOR 循环

转载 作者:行者123 更新时间:2023-11-29 06:37:58 24 4
gpt4 key购买 nike

我无法理解为什么我的代码无法正常工作。这应该显示一个 8x8 的棋盘格,but the last square doesn't get drawn !知道为什么吗?

我搜索了一下以前是否有人问过这个问题,但没有找到任何内容。提前致谢!

代码:

/*
* File:CheckerBoard.java
* ----------------------
*/

import acm.graphics.*;
import acm.program.*;

public class CheckerBoard extends GraphicsProgram {
int row, column, x, y;

public void run() {

// Checkerboard
for (row = 0; row < 8; row++) {
for (column = 0; column < 8; column++) {
// x, y, x width, y width
add(new GRect(x, y, 50, 50));
x = column * 50;
y = row * 50;
}
}
}
}

顺便说一句:我正在阅读的书要求我使用两个嵌套的 for 循环(“Java 的艺术与科学”,第 4 章,练习 11,CS-106a)

最佳答案

绘制矩形前需要设置xy。否则,最后一个矩形不会显示:

for (row = 0; row < 8; row++) {
for (column = 0; column < 8; column++) {
x = column * 50;
y = row * 50;
// x, y, x width, y width
add(new GRect(x, y, 50, 50));
}
}

更好的是,完全删除 xy,直接使用计算:

for (row = 0; row < 8; row++) {
for (column = 0; column < 8; column++) {
add(new GRect(column * 50, row * 50, 50, 50));
}
}

关于java - 未绘制 8x8 网格的最后一个正方形,使用两个嵌套的 FOR 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com