Qtの初心者です。これは私が協力した最初のフレームワークです。私はQtを使ってブラックジャックゲームを書いています。私は、各カードの画像をQVector
のようなコンテナクラスに保存しなければならないと思います。コンテナのタイプはQImage
です。だから、私はQVector<QImage> cards;
のような宣言をするでしょう。これはおそらく、この問題に近づく最善の方法ではないので、代替提案はもちろん歓迎されます。しかし、関係なく、宣言中にコンテナを初期化できるかどうかを知りたいと思います。以下、私はこのように私の解決策を解決することができていないです。QImageのQVectorを初期化する
// Deck.h
class Deck
{
public:
Deck();
void shuffle(); // Creates new deck and shuffles it.
QImage &popCard(); // Removes first card off deck.
private:
void emptyDeck(); // Empty the deck so new cards can be added
QVector<QImage> cards;
QQueue<QImage> deck;
};
// Deck.cpp
Deck::Deck()
{
cards.push_back(QImage(":/PlayingCards/Clubs 1.png"));
cards.push_back(QImage(":/PlayingCards/Clubs 2.png"));
cards.push_back(QImage(":/PlayingCards/Clubs 3.png"));
cards.push_back(QImage(":/PlayingCards/Clubs 4.png"));
// continue process for entire deck of cards...
}
これは私が後でトランプの異なるスタイルを追加することを検討、または場合は特に痛いほど退屈であるように思わ私は、ユーザーに選択肢を与える場合実行時にカードのスタイルを変更します。これに効率的な設計は何でしょうか?
"宣言時にコンテナを初期化できるかどうか" - C++、no。 "これは辛いほど退屈なようです" - そうですが、あなたはその経験と次のプロジェクト(またはこれと同じかもしれません)を得るでしょう。 aspera ad astraごとに がんばろう! –