gpt4 book ai didi

java - 创建多彩板

转载 作者:行者123 更新时间:2023-12-01 23:53:56 25 4
gpt4 key购买 nike

我要创建一个多彩板,从第一个方 block 开始为黑色,然后是蓝色、红色和黄色,这些方 block 对角填充,并且没有空的彩色方 block 。我知道我的算法是错误的,但我不知道如何修复它。目前,我的代码打印如下

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;

public class Grid extends JPanel {
private static final long serialVersionUID = 1L;
public static final int GRID_COUNT = 8;
private Color[] colors = { Color.black, Color.yellow, Color.red,
Color.blue };
private int colorIndex = 0;

public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D graphics = (Graphics2D) g;
graphics.setColor(Color.black);

Dimension size = getSize();
Insets insets = getInsets();
int w = size.width - insets.left - insets.right;
int h = size.height - insets.top - insets.bottom;

int sqrWidth = (int)((double)w / GRID_COUNT);
int sqrHeight = (int)((double)h / GRID_COUNT);
for (int row = 0; row < GRID_COUNT; row++) {
for (int col = 0; col < GRID_COUNT; col++) {
int x = (int) (row * (double) w / GRID_COUNT);
int y = (int) (col * (double) h / GRID_COUNT);
if ((row + col) % 2 == 0) {
int colorIndex = (row + col) % 4;
graphics.fillRect(x, y, sqrWidth, sqrHeight);
graphics.setColor(colors[colorIndex]);
colorIndex = (colorIndex + 1) % colors.length;
}

}

public static void main(String[] args) {
Grid grid = new Grid();
grid.setPreferredSize(new Dimension(400, 400));
JFrame frame = new JFrame("Grid");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(grid);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

}

}

最佳答案

让我们看看这个模式:

Bk Gr Pn Bl
Gr Pn Bl Bk
Pn Bl Bk Gr
Bl Bk Gr Pn

但为了简单起见,我们调用 Bk 0、Gr 1、Pn 2 和 Bl 3 即可得到:

0 1 2 3
1 2 3 0
2 3 0 1
3 0 1 2

通过计算每个图 block 的tile[x][y] = (x + y) % 4,并使用查找表将这些数字转换为颜色(或者使用枚举,或者不向图 block 分配整数值,而是使用整数作为颜色表中的查找并将颜色分配给图 block )

如果您以前从未见过,% 4 表示“除以 4 并返回除法的余数”。

关于java - 创建多彩板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891250/

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