我正在开发一款西洋跳棋游戏,并且正在进入“实际实现游戏”部分,该部分位于“获取事物渲染”部分之后。目前我的作品的逻辑是这样的:
struct Square {
Piece * piece;
}
struct Piece {
bool king;
Color color;
}
Run Code Online (Sandbox Code Playgroud)
以及渲染方法和类似的东西。其背后的想法是,方块有时可能是空的,在这种情况下,方块中的指针可以为空。但是,结构体只是用来保存指针的想法让我感到困扰。我的问题是这是否是一个好主意,或者我是否是个白痴并且使事情过于复杂化。
小智 5
你把事情搞得太复杂了。实际上没有必要唯一地识别和跟踪跳棋游戏中的每个棋子;只需知道给定方格中存在一个棋子可能就足够了。因此:
enum CheckersPiece {
SQUARE_EMPTY = 0,
SQUARE_BLACK_PIECE = 1,
SQUARE_BLACK_KING = 2,
SQUARE_RED_PIECE = -1,
SQUARE_RED_KING = -2,
};
enum CheckersPiece board[8][4];
Run Code Online (Sandbox Code Playgroud)
枚举中的值是专门选择的,以便您可以检查值的符号来确定块颜色,并检查绝对值来检查其类型。
请注意,棋盘是 8x4 而不是 8x8,因为棋盘每行上只有四个方块可用于棋子。(您可以将其设为 8x8,但是您必须小心,仅使用“有效”位置。)
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |