java - 执行任何操作后如何重置多维列表(国际象棋中的 Noob Java 编码)?

标签 java chess 2d-games

在学习了一些 Java 语言后,我正在自学编写 Java 代码,并决定制作一款非图形的国际象棋游戏。

第一个问题: 这是我在“Board.java”中的多维字符串列表:

public static String chessBoard[][][] = {
        { { "A1" }, { "A2" }, { "A3" }, { "A4" }, { "A5" }, { "A6" },
                { "A7" }, { "A8" } },
        { { "B1" }, { "B2" }, { "B3" }, { "B4" }, { "B5" }, { "B6" },
                { "B7" }, { "B8" } },
        { { "C1" }, { "C2" }, { "C3" }, { "C4" }, { "C5" }, { "C6" },
                { "C7" }, { "C8" } },
        { { "D1" }, { "D2" }, { "D3" }, { "D4" }, { "D5" }, { "D6" },
                { "D7" }, { "D8" } },
        { { "E1" }, { "E2" }, { "E3" }, { "E4" }, { "E5" }, { "E6" },
                { "E7" }, { "E8" } },
        { { "F1" }, { "F2" }, { "F3" }, { "F4" }, { "F5" }, { "F6" },
                { "F7" }, { "F8" } },
        { { "G1" }, { "G2" }, { "G3" }, { "G4" }, { "G5" }, { "G6" },
                { "G7" }, { "G8" } },
        { { "H1" }, { "H2" }, { "H3" }, { "H4" }, { "H5" }, { "H6" },
                { "H7" }, { "H8" } }, };

如果我在棋盘上放置一个棋子(来自“WPawn.java”),我会得到:

    A1  A2  A3  A4  A5  A6  A7  A8  
    WP1 B2  B3  B4  B5  B6  B7  B8  
    C1  C2  C3  C4  C5  C6  C7  C8  
    D1  D2  D3  D4  D5  D6  D7  D8  
    E1  E2  E3  E4  E5  E6  E7  E8  
    F1  F2  F3  F4  F5  F6  F7  F8  
    G1  G2  G3  G4  G5  G6  G7  G8  
    H1  H2  H3  H4  H5  H6  H7  H8

我希望结果列表(上面)返回到原始列表(来自第一个代码),但我该怎么做?

提前致谢:)

public static void update() {
    // Print chessBoard nicely
    System.out.println("Here is the board: ");
    for (int row = 0; row < chessBoard.length; row++) {
        for (int column = 0; column < chessBoard[row].length; column++) {
            for (int pos = 0; pos < chessBoard[row][column].length; pos++) {
                System.out.print(chessBoard[row][column][pos] + "\t");
            }

        }
        System.out.println();
    }
    // end
}

最佳答案

不质疑你当前的数据结构,我想你只需要做这样的事情

public class Chess {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String[][][] chessBoard = initBoard();
        //do what you want
        //...
        //reset
        chessBoard = initBoard();
    }

    private static String[][][] initBoard() {
        return new String[][][]{
            { { "A1" }, { "A2" }, { "A3" }, { "A4" }, { "A5" }, { "A6" }, { "A7" }, { "A8" } },
            { { "B1" }, { "B2" }, { "B3" }, { "B4" }, { "B5" }, { "B6" }, { "B7" }, { "B8" } },
            { { "C1" }, { "C2" }, { "C3" }, { "C4" }, { "C5" }, { "C6" }, { "C7" }, { "C8" } },
            { { "D1" }, { "D2" }, { "D3" }, { "D4" }, { "D5" }, { "D6" }, { "D7" }, { "D8" } },
            { { "E1" }, { "E2" }, { "E3" }, { "E4" }, { "E5" }, { "E6" }, { "E7" }, { "E8" } },
            { { "F1" }, { "F2" }, { "F3" }, { "F4" }, { "F5" }, { "F6" }, { "F7" }, { "F8" } },
            { { "G1" }, { "G2" }, { "G3" }, { "G4" }, { "G5" }, { "G6" }, { "G7" }, { "G8" } },
            { { "H1" }, { "H2" }, { "H3" }, { "H4" }, { "H5" }, { "H6" }, { "H7" }, { "H8" } }, };
    }

}

关于java - 执行任何操作后如何重置多维列表(国际象棋中的 Noob Java 编码)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24841237/

相关文章:

java - 更新我的图形

java - 此环境中不提供编译器。也许您正在 JRE 而不是 JDK 上运行? - 但是选择了jdk

python - 运行游戏时出现空白窗口

java - 国际象棋 AI : MinMax on object implementation

Java Unicode 字符宽度

2019年2D RTS游戏的Java游戏引擎

安卓游戏,电池使用率非常高

java - RPC 调用 - 静态方法不起作用

java - 英特尔实感 java 支持

java - 国际象棋引擎是c还是java,性能有区别吗?