-2
私はChessプログラムをJavaで書いています。ピースのすべての動きを扱う私のBoardクラスでは、ピースを特定の場所に移動させ、その場所に敵ブロックが存在する場合、それをキャプチャするmovePieceという関数を作成しました。 movePieceのための関数は次のようになります。別のクラスからArrayListにオブジェクトを追加する(JavaのChess)
public void movePiece(int x, int y, Piece pieceToMove) {
if(pieceToMove.canMove(board, this.x, this.y, x, y)){ //Check if the piece canMove to the location
if(board[x][y] == null) { //Check if the location is empty
removePiece(this.x, this.y);
board[x][y] = pieceToMove;
} else {
if(board[x][y].getColor() != pieceToMove.getColor()) { //Check if the location is occupied by an enemy
removePiece(this.x, this.y);
board[x][y] = pieceToMove;
} else {
System.out.println("Invalid Move");
}
}
} else {
System.out.println("Invalid Move");
}
}
それは正常に動作しますが、私はArrayListの中に捕らえた敵ピースのトラックに維持したいです。だから、私はそれをトラックに保つためにプレーヤークラス内ArrayListのcapturedListを作成し、そして
if(board[x][y].getColor() != pieceToMove.getColor()) { //Check if the location is occupied by an enemy
addCapturedPiece(board[x][y], capturedList); <--- THIS LINE
removePiece(this.x, this.y);
board[x][y] = pieceToMove;
}
を追加しようとしました。しかしcapturedListプレーヤークラス内にあるので、これは動作しませんでした。これをスムーズにする方法はありますか?
「addCapturedPiece」とは何か、「board [x] [y]」の種類は何ですか? – nullpointer
'movePiece'は何かを行います。その結果はあなたが知りたいことです...' movePiece'は何か起きたことを彼らに話してくれますか? – MadProgrammer
addCapturedPieceは、プレイヤーがキャプチャした部分を追跡するためにPlayerクラスで作成したメソッドです。ボード[x] [y]の種類はPieceです。私は、ボードクラスのaddCapturedPieceを使用して問題を抱えています。 – user6792790