Java 二维数组在指定新值时不更改

Java 二维数组在指定新值时不更改,java,Java,我试图在java控制台中制作一个跳棋游戏,当我试图移动棋子时,游戏板上的2d阵列不会改变。movePiece方法有三个参数,“移动代码”1-4对应于玩家想要进行的移动,1为右上,2为左上,3为左下,4为右上,以及玩家想要移动的棋子的x和y值。该方法被调用并执行良好,但当使用printBoard方法打印出电路板时,它不会显示所做的任何更改 public class Board { private char gameBoard[][] = {{'0','b','0','b','0','b'

我试图在java控制台中制作一个跳棋游戏,当我试图移动棋子时,游戏板上的2d阵列不会改变。movePiece方法有三个参数,“移动代码”1-4对应于玩家想要进行的移动,1为右上,2为左上,3为左下,4为右上,以及玩家想要移动的棋子的x和y值。该方法被调用并执行良好,但当使用printBoard方法打印出电路板时,它不会显示所做的任何更改

public class Board {
    private char gameBoard[][] =  {{'0','b','0','b','0','b','0','b'},{'b','0','b','0','b','0','b','0',},{'0','b','0','b','0','b','0','b'},{'0','0','0','0','0','0','0','0'},{'0','0','0','0','0','0','0','0'},{'r','0','r','0','r','0','r','0',},{'0','r','0','r','0','r','0','r'},{'r','0','r','0','r','0','r','0'}};;

    public char[][] getBoard() {
        return gameBoard;
    }

    public void movePiece(int move,int startingX, int startingY){
        int wantedX, wantedY;
        switch(move){
            case 1:
                wantedX = startingX + 1;
                wantedY = startingY + 1;

                break;
            case 2:
                wantedX = startingX - 1;
                wantedY = startingY + 1;
                break;
            case 3:
                wantedX = startingX - 1;
                wantedY = startingY - 1;
                break;
            case 4:
                wantedX = startingX + 1;
                wantedY = startingY - 1;
                break;
            default:
                wantedX = 0;
                wantedY = 0;
                break;
        }
        this.gameBoard[wantedX][wantedY] = this.gameBoard[startingX][startingY];
        this.gameBoard[startingX][startingY] = '0';
    }

    public int countPieces(char color){
        int count = 0;
        for(int i = 0; i < gameBoard.length; i++){
            for(int j = 0; j < gameBoard[i].length; i++){
                if(gameBoard[i][j] == color)
                    count++;
            }
        }
        return count;   
    }

    public void printBoard(){
        for(int i = 0; i < gameBoard.length; i++){
            for(int j = 0; j < gameBoard[i].length; j++){
                System.out.print(gameBoard[i][j]);
            }
            System.out.print("\n");
        }
    }
}




public class test {

    public static void main(String[] args){
        System.out.print("Beginning test\n");
        Board board = new Board();
        board.printBoard();
        System.out.println("Moving piece at (2,0) to (3,1)");
        board.movePiece(1, 2, 0);
        board.printBoard();
    }

}

2点0分没有碎片。我认为你的计划运作良好;你只需要给你的方法提供正确的输入。同时,你需要检查哪条路是向上的,哪条路是向下的。由于print方法在顶部打印第0行,这意味着当您将1添加到X时,实际上是向下,这意味着案例1是向右向下,而不是向右上。如果X应该是列号,就像它是X轴一样,那么你也没有做到这一点,因为你使用了wantedX和startingX作为行号。