キングを取得する必要があると言うとき、プログラムで白のキングと黒のキングをどのように区別しますか?
ポーンを取得する必要がある場合、どのポーンをどのように知ることができますか? 誰 ?アイテムで最初に見つけることができるものは?
私はそれについてあまり考えていませんが、おそらくあなたができることは QMap を使用することです。キーはさまざまな部分の列挙であり、値は関連する へのポインタQGraphicsItem
です。このようなもの :
enum Piece_e {
KING,
QUEEN,
ROOK1,
ROOK2,
...
PAWN1,
PAWN2,
...
};
QMap<Piece_e, QGraphicsPixmapItem*> WhitePiecesItems;
QMap<Piece_e, QGraphicsPixmapItem*> BlackPiecesItems;
シーンを作成してピースをインスタンス化するときは、マップを塗りつぶします:
...
WhitePiecesItem[KING] = new QGraphicsPixmapItem(QPixmap("whiteking_pic"));
WhitePiecesItem[PAWN1] = new QGraphicsPixmapItem(QPixmap("whitepawn_pic"));
...
BlackPiecesItem[QUEEN] = new QGraphicsPixmapItem(QPixmap("whitequeen_pic"));
BlackPiecesItem[PAWN1] = new QGraphicsPixmapItem(QPixmap("whitepawn_pic"));
...
白い王に対応するオブジェクトを見つける必要がある場合は、次のようにすることができます。
QGraphicsPixmapItem* pItem = WhitePiecesItem[KING];