もう 1 つ質問があります。できれば私の考えを要約してください。
次の 3 つのクラスがあるとします。
クラスプレーヤー:
class Player {
private:
int positionX, positionY;
public:
void move(Board& b) {
// player changes its position on the board(move)
b.removeCharFromBoard(positionX, positionY);
positionX++;
positionY++;
// 'P' indicates a Player in the Board....
b.insertCharToBoard(positionX, positionY, 'P');
}
};
クラス委員会:
class Board {
private:
// BOARD_C and BOARD_R are both "#define ..." for some integer number.
char board[BOARD_C][BOARD_R];
};
クラスゲームエンジン:
class GameEngine {
private:
Board* board;
public:
void playTurn(const Player& p) {
p.move(board);
}
};
GameBoard の playTurn 関数が Player の move 関数をパラメータ「board」で呼び出すのは理にかなっていると思いますか? プレーヤーが自分の位置を変更したことをボード データ メンバーにマークするために、これを行う必要があります。OOPの基本的なルールを守っていますか?
みなさんありがとう、シンジケーター!