【发布时间】:2012-06-23 06:50:42
【问题描述】:
我已经开始自学 C++ 并且一直在尝试编写二十一点程序。我正在尝试使用类来表示卡片、甲板和手。我相信到目前为止,除了dealCardToHand() 方法外,程序中的一切都在工作。
void dealCardToHand(deck& d, hand& h){
h.setCard(h.getCardsInHand(), d.dealCard());
h.setCardsInHand(h.getCardsInHand() + 1);
}
它似乎正确地增加了手牌的数量,但没有使用正确的数据调用 setCard() 方法。任何帮助,将不胜感激。我包括相关的类和方法:
class deck{
int topCard;
card * cards[52];
public:
deck();
void shuffle();
void printDeck();
card dealCard();
};
card deck::dealCard(){//returns top card of deck and increments top card one
return *cards[topCard++];
}
class hand{
card * handCards[12];
int cardsInHand;
public:
hand();
card getCard(int i){ return *handCards[i]; }
void setCard(int i, card c) { handCards[i] = &c; }
int getCardsInHand() { return cardsInHand; }
void setCardsInHand(int i) { cardsInHand = i; }
void printHand();
};
【问题讨论】:
-
STL 容器会让您的生活更轻松。还有一个
std::random_shuffle算法,如果它能让你的船浮起来的话。