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