You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写填充8×8棋盘格的fillCheckerboard(Color[][] board)方法?

解决8×8棋盘格交替颜色填充问题

嘿,我来帮你搞定这个棋盘格填充的问题!其实核心逻辑特别简单——棋盘格的交替规律完全可以通过行号+列号的奇偶性来判断:如果行号i和列号j的和是偶数,就用第一种颜色;如果是奇数,就用第二种颜色。

下面是具体的实现方案,我会把填充方法和测试输出的逻辑都写清楚:

1. 实现fillCheckerboard方法

从你提到的Color[][]和public void方法定义来看,应该是用Java开发,这个方法的作用就是把传入的8×8二维数组填充成交替颜色的棋盘格:

import java.awt.Color;

public class Checkerboard {
    public void fillCheckerboard(Color[][] board) {
        // 先校验传入的数组是否是8×8的,避免非法输入导致出错
        if (board == null || board.length != 8 || board[0].length != 8) {
            throw new IllegalArgumentException("请传入标准的8×8 Color数组!");
        }

        // 遍历每一行每一列,按奇偶规则填充颜色
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                // 核心判断:i+j为偶数时用黑色,奇数时用白色(顺序可以随意调换)
                board[i][j] = (i + j) % 2 == 0 ? Color.BLACK : Color.WHITE;
            }
        }
    }
}

2. 编写测试逻辑,用符号输出棋盘格

你提到想用符号代表黑白颜色,我们可以写一个测试方法,遍历填充好的数组,根据颜色输出对应的字符——比如用X代表黑色,x代表白色(完全符合你要的两种x类标记):

public static void main(String[] args) {
    Checkerboard cb = new Checkerboard();
    Color[][] board = new Color[8][8];
    cb.fillCheckerboard(board);

    // 逐行输出棋盘格
    for (Color[] row : board) {
        for (Color cell : row) {
            System.out.print(cell.equals(Color.BLACK) ? "X " : "x ");
        }
        System.out.println(); // 每行结束换行,保证格式整齐
    }
}

3. 最终输出效果

运行上面的代码后,你会得到标准的8×8交替棋盘格:

X x X x X x X x 
x X x X x X x X 
X x X x X x X x 
x X x X x X x X 
X x X x X x X x 
x X x X x X x X 
X x X x X x X x 
x X x X x X x X 

要是你想调整颜色对应的符号,或者修改起始颜色,只需要改动填充逻辑里的条件判断,或者输出时的字符映射就行啦。

内容的提问来源于stack exchange,提问作者MontyLemons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:01:41