(国际象棋游戏)返回可能的棋子移动的功能

我正在写一个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可以检测到捕获的动作(并且变得更加复杂,因为它只在可能性第一次出现时才有效)。

链接地址: http://www.djcxy.com/p/84613.html

上一篇: (Chess game)Function that returns possible moves of pawn

下一篇: <Java> Chess pawn movement issue