Javaでは、オブジェクトの2次元配列がありますが、オブジェクトのクラスメソッドでこれらのオブジェクトの配列にアクセスすることはできません。私は何をすべきか?これが私のクラスです:
class GoPiece
{
final int boardSize = 19;
final int empty = 0;
final int black = 1;
final int white = 2;
int pieceType = empty;
int leftRight;
int downUp;
int turnPlayed;
boolean legal;
// GoPiece's Constructor with 3 parameters.
GoPiece(int blackOrWhite, int horizontalCoordinate, int verticalCoordinate)
{
pieceType = blackOrWhite;
leftRight = horizontalCoordinate;
downUp = verticalCoordinate;
if ((true));
}
// GoPiece's Constructor with 2 parameters.
GoPiece(int horizontalCoordinate, int verticalCoordinate)
{
pieceType = empty;
leftRight = horizontalCoordinate;
downUp = verticalCoordinate;
}
// GoPiece's Constructor with no parameters.
GoPiece()
{
leftRight = 0;
downUp = 0;
}
// Initialize an empty Go board full of GoPieces.
GoPiece[][] InitializeBoard()
{
GoPiece[][] intersection = new GoPiece[boardSize][boardSize];
for(int horizontal = 0; horizontal < boardSize; horizontal++)
{
for(int vertical = 0; vertical < boardSize; vertical++)
{
intersection[horizontal][vertical] = new GoPiece(horizontal,vertical);
}
}
return intersection;
}
// Make a piece a certain type: empty, black, or white.
public void SetType(int newType)
{
pieceType = newType;
}
public int GetType()
{
return pieceType;
}
public void CheckKill()
{
int foobar = this.GetType();
}
}
次に、プログラムの別の部分でInitializeBoard()を使用して、GoPiecesの2次元配列を作成できます...これは機能しますが、クラスGoPieceのメンバー関数で参照しているもの以外のすべての部分にアクセスするにはどうすればよいですか? ?配列全体をGoPieces関数の1つに渡そうとしましたが、うまくいかなかったようです。
Goは古代中国のボードゲームです。上記のCheckKill()メソッドは、配列のさまざまな部分にアクセスしようとしましたが、失敗しました。ここにいくつかの動作するダミーコードがあります。
ありがとうございました。