使用填充棋盘图案的数组创建方法

时间:2018-03-20 13:38:58

标签: java arrays

我正在尝试编写一个用两种交替颜色填充8x8棋盘的程序,但我正在努力创建一个方法public void fillCheckerboard(Color[][] board)来测试它。

我正在尝试打印出一个数组,显示“x”表示黑色,“x”表示白色。

2 个答案:

答案 0 :(得分:1)

您可以使用x和y之和的模2来获得此检查器模式。因此,一些示例代码填充二维数组以执行此操作。有任何问题请告诉我。

public class HelloWorld {

     public static void main(String []args){
             String[][] board = new String[8][8];

         for (int i = 0; i < 8; i++) {
             for (int j = 0; j < 8; j++) {
                 board[i][j] = (i + j) % 2 == 0 ? "X" : "O";
             }
         }

         for (int i = 0; i < 8; i++) {
             for (int j = 0; j < 8; j++) {
                 System.out.print(board[i][j]+" ");
             }
             System.out.println();
         }
     }
}

它会为您提供您最想要的输入:

X O X O X O X O 
O X O X O X O X 
X O X O X O X O 
O X O X O X O X 
X O X O X O X O 
O X O X O X O X 
X O X O X O X O 
O X O X O X O X 

答案 1 :(得分:1)

这样的事情应该有效:

private static class Color {
    private final char c;

    public Color(char c) {
        this.c = c;
    }

    @Override
    public String toString() {
        return "" + c;
    }
}

public static final Color WHITE = new Color('X');
public static final Color BLACK = new Color(' ');

public void fillCheckerboard(Color[][] board) {
    Color c = BLACK;
    for (int i = 0; i < board.length; i++) {
        for (int j = 0; j < board[i].length; j++) {
            board[i][j] = c;
            c = c == BLACK ? WHITE : BLACK;
        }
    }
}