我还有一个问题希望总结一下我的想法。
假设我有以下 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 函数会使用参数“board”调用玩家的 move 函数对您来说是否合理?我需要这样做以便在棋盘数据成员中标记玩家已经改变了他的位置。是否遵守 OOP 的基本规则?
谢谢大家,辛迪加!