配列内のオブジェクトにいくつかの問題があります。例えばJavaクラスのコピーと配列
boardArray = new object[4];
workingBoardArray = new object[4];
boardArray[0] = new board(boardA);
boardArray[1] = new board(boardB);
boardArray[2] = new board(boardC);
boardArray[3] = new board(boardD);
int selectedBoard = selectBoard(boardArray);
workingBoardArray[0] = boardArray[selectedBoard];
workingBoardArray[1] = boardArray[selectedBoard];
workingBoardArray[2] = boardArray[selectedBoard];
workingBoardArray[3] = boardArray[selectedBoard];
workingBoard[0].moveUp();
workingBoard[1].moveRight();
workingBoard[2].moveDown();
workingBoard[3].moveLeft();
このコードは、4枚のボードのセットを作成し、所望のボードを見つけ、作業板アレイにボードをコピーし、新しい方向に各作業ボードをシフトします。問題はボードがすべて一緒に行動することです。したがって、私がworkingBoard [0]でmoveUp()を実行すると、workingBoard [1]も上に移動します。これを回避する方法はありますか、私は基本的な理解や本当にばかげた間違いを逃しているような気がします。
私はまた、すべての重要なボード情報を取得し、それを新しいボードを作成し、それdoesntのは何も影響を与えているように見える
workingBoard[0] = new Board(boardArray[selectedBoard].getBoard);
のようなコピーの建設業者を使用してみました。
int selectedBoard = selectBoard(boardArray);
workingBoardArray[0] = boardArray[selectedBoard];
workingBoardArray[1] = boardArray[selectedBoard];
workingBoardArray[2] = boardArray[selectedBoard];
workingBoardArray[3] = boardArray[selectedBoard];
同じオブジェクトへの参照ようにすべての4つの配列要素を設定しています:すべてのヘルプは、このコードで素晴らしい
あなたはボードクラスの実装を投稿していない限り手助けすることができませんでしを(それは確かに一つのクラス定義である場合)、あることを行っている場合インタフェースにキャストするには、少なくとも実行メソッドを持つオブジェクトを定義するクラスの1つを –
に見せてください。また、boardA、boardBなどが作成されているコードを投稿してください。 –
'workingBoardArray'と' workingBoard'は同じ?もしあなたが 'workingBoard'をどこで定義して初期化していないのであれば? – assylias