(国际象棋游戏)返回可能的棋子移动的功能
我正在写一个C ++象棋游戏。我有一个抽象类Piece和继承它的类.Class Piece有纯粹的虚拟方法,它返回所有可能的移动。但是我有一个棋子位置的问题,因为每个棋子只能移动棋子向前,但在棋盘(这是Piece的矩阵)向前出现不同的每个player.How可以实现possibleMoves()的棋子? 谢谢!
class Piece
{
public:
Piece(std::string, char verticalPosition, char horizontalPosition);
virtual std::pair<char,char>* possibleMoves() const = 0;
virtual ~Piece();
protected:
std::string name;
std::pair <char,char> initPosition;
std::pair <char,char> currPosition;
};
将pawn作为参数传入构造函数的方向并存储为成员变量。 在确定可能的棋子移动时使用它。
正如BobTFish在评论中所说的,典当物体应该知道它的颜色。 至于这个职位,我想我会把它作为possibleMoves
的动议的一个论据; 你可能也必须通过董事会,以便possibleMoves
Move可以检测到捕获的动作(并且变得更加复杂,因为它只在可能性第一次出现时才有效)。
上一篇: (Chess game)Function that returns possible moves of pawn