gpt4 book ai didi

java - 用图形制作棋盘

转载 作者:行者123 更新时间:2023-12-01 13:40:45 25 4
gpt4 key购买 nike

我正在尝试用 Java 制作一个带有图形的棋盘(带有像素本身 - 不仅仅是粘贴方 block ),但它并没有按照我想要的方式工作。这是我的代码:

int a = 0, b = 0;
for(int y = 30; y < getHeight() - 318; y++){
for(int x = 30; x < getWidth() - 70; x++){
if((b % 2 != 0)){
x+=80;
b++; //if odd row, skip to next horizontal square to color black
}
if((x % 80 == 30) && (a % 2 == 0)){
g.setColor(Color.BLACK);
g.fillRect(x, y, 80, 80); //make squares of 80 x 80 pixels
}
x+=79;
a++;
}
y+=79;
b++;
}

(不要担心 - 318 和 - 70 等 - 我稍后会修复它们,它们现在没有多大影响。)棋盘的第一行是正常的 - 但其余的行偏移是因为第一列的其余部分是白色的,并且不与黑色交替。 b 有问题,但我不知道如何修复它。非常感谢任何帮助!

最佳答案

当您循环浏览板时,您似乎对使用哪些变量有点困惑。在某些地方,您使用 a 和 b,它们增加 1(a = 1 和 b = 2,它们似乎指的是从顶部向右移动 1 步并向下移动两步),在其他地方您循环其中 x 和 y 指的是屏幕像素

我对其进行了一些更改,只使用 a 和 b,并且仅在绘制正方形时才确定 x 和 y。我还更改了确定正方形何时为黑色或白色的逻辑 - 这可能是错误的,但只有两种方法可以将棋盘绘制为开始黑色或开始白色。

//int a = 0, b = 0; // we will loop thorugh a,b instead
for(int a = 0; a < 8; a++){
for(int b = 0; x < 8; x++){
//b is for the horizontal axis and a for vertical
if((a + b) % 2 == 0){
g.setColor(Color.BLACK);
g.fillRect(30 + b * 80, 30 + a * 80, 80, 80); //make squares of 80 x 80 pixels
}
}
}

关于java - 用图形制作棋盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811104/

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