我正在用C ++编写一个国际象棋游戏机,作为我们编程类中的一项任务。我已经完成了打印功能,并输入了用于移动作品的输入,效果很好。
现在是时候使这些功能检查移动是否有效。而且我已经很难尝试区分黑色和白色。
因为白色总是开始,所以第一步只能由白色完成。
因此,我对所有部分进行了构造:
struct chesspiece
{
string pieceName;
char pieceColor;
int pieceValue;
};
我在控制台上的输出是一个字符串数组:
const int ROWS = 8;
const int COLS = 8;
string chessboard[ROWS][COLS] =
{
chessPiece.pieceName etc.
};
现在,我正在尝试创建一个函数,以检查移动的第一个棋子是否为白色,但是由于字符串数组中只有chessPiece.pieceName,所以我找不到结构和字符串数组之间的连接,并且不是实际的pieceColor变量。 struct数组可以更好地构建它吗?还是有其他东西?
答案 0 :(得分:0)
为什么在作品名称中不包含作品的颜色?更好的是,使用枚举代替字符串。像这样的东西:
enum {
Empty,
WhitePawn, WhiteRook, WhiteKnight, ...
BlackPawn, ...
};
或者,如果您觉得可以轻松理解每个符号,则甚至可以使用代表每个棋子的符号(这些符号对于国际象棋棋手是众所周知的)。
enum {
Empty,
WP, WR, WN, ...
BP, ...
};