Java 创建动态棋盘,偶数导致问题
我的家庭作业挑战是根据用户从JOptionPane输入的大小使用JavaFX制作棋盘。我已经完成了这项工作,并且只在奇数情况下工作得很好,我如何修正它,使其正确地适用于奇数和偶数 我假设这是一个如何轮询颜色的问题,因为对于偶数,每行都是相同的Java 创建动态棋盘,偶数导致问题,java,javafx,Java,Javafx,我的家庭作业挑战是根据用户从JOptionPane输入的大小使用JavaFX制作棋盘。我已经完成了这项工作,并且只在奇数情况下工作得很好,我如何修正它,使其正确地适用于奇数和偶数 我假设这是一个如何轮询颜色的问题,因为对于偶数,每行都是相同的 Color[] colors = {Color.BLACK, Color.WHITE}; int nextColor = 0; for (int row = 0; row < size; row++) { f
Color[] colors = {Color.BLACK, Color.WHITE};
int nextColor = 0;
for (int row = 0; row < size; row++) {
for (int col = 0; col < size; col++) {
nextColor = (nextColor == 0) ? 1 : 0;
Rectangle rec = new Rectangle();
rec.setWidth(50);
rec.setHeight(50);
rec.setFill(colors[nextColor]);
GridPane.setRowIndex(rec, row);
GridPane.setColumnIndex(rec, col);
grid.getChildren().addAll(rec);
}
}
Color[]colors={Color.BLACK,Color.WHITE};
int nextColor=0;
对于(int row=0;row
奇数
偶数
如果要在电路板中使用交替颜色填充字段,偶数列将导致最后一个字段的颜色与行中第一个字段的颜色不同,因此下一行中的第一个字段的颜色将与正上方的字段的颜色相同 要解决此问题,只需添加列号和行号,并将其余部分除以2即可确定颜色:
Color[] colors = {Color.WHITE, Color.BLACK};
for (int row = 0; row < size; row++) {
for (int col = 0; col < size; col++) {
int nextColor = (row + col) % 2;
Rectangle rec = new Rectangle();
rec.setWidth(50);
rec.setHeight(50);
rec.setFill(colors[nextColor]);
GridPane.setRowIndex(rec, row);
GridPane.setColumnIndex(rec, col);
grid.getChildren().addAll(rec);
}
}
Color[]colors={Color.WHITE,Color.BLACK};
对于(int row=0;row
另一种不同于muzzlator建议的变体是,只按位置设置颜色,而不存储当前的备用颜色。正如您所看到的,这很容易出错
只需使用
intcolor=(行+列)%2代码>欢迎使用堆栈溢出!看起来你可能在请求家庭作业帮助。虽然我们对此本身没有问题,但请注意这些,并相应地编辑您的问题。(即使这不是家庭作业,也要考虑这个建议。)谢谢!我没想过用余数法。