0

私は C++ チェス ゲームを書いています。私は抽象クラス Piece とそれを継承するクラスを持っています。クラス Piece には、すべての可能な動きを返す純粋な仮想メソッドがあります。しかし、ポーンの位置に問題があります。前方ですが、ボード (ピースのマトリックス)では前方が各プレイヤーごとに異なって表示されます。ありがとう!

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;
};
4

2 に答える 2

0

BobTFish がコメントで述べたように、ポーン オブジェクトはその色を認識している必要があります。possibleMoves位置については、引数として;に渡すと思います。おそらく、ボードを通過する必要もあります。これにより、possibleMovesキャプチャである動きを検出できます (そして、可能性が最初に発生したときにのみ有効になるため、より複雑になります)。

于 2013-07-09T16:49:43.137 に答える
0

ポーンが移動できる方向をパラメーターとしてコンストラクターに渡し、メンバー変数として格納します。ポーンの可能な動きを決定するときにこれを使用します。

于 2013-07-09T16:02:41.703 に答える