我正在尝试制作一个简单的二十一点程序。可悲的是,我在生成一副扑克牌方面遇到了问题。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<char> deck;
char suit[] = {'h','d','c','s'};
char card[] = {'2','3','4','5','6','7','8','9','10','J','Q','K','A'};
for (int j=0; j<13; j++) {
for (int i=0; i<4; i++) {
deck.push_back(card[j] suit[i]);
}
}
return 0;
}
我知道我的问题始于我尝试将值“10”分配给char的问题。显然,我无法对此进行编译,但是可以肯定的是,当我尝试将卡值分配给 vector 卡座时,由于使用了变量类型'char',因此也会出现错误。知道使用哪种变量类型似乎让我丧命。另外,会'deck.push_back(card [j] suit [i]);'是将证卡和西服相结合的正确代码,还是您必须在证卡[j]和西服[i]之间放置一些内容?如果您能带领我朝正确的方向前进,我将不胜感激。另外请注意,这是家庭作业的一部分,所以请不要只给我完整的代码块。谢谢你的帮助。
最佳答案
尝试使用衣服和卡片作为成员来创建卡片类别,并将其设置为 vector 类型。喜欢
public class Card {
public:
Card(char suit, char card);
char suit, card;
};
int main() {
vector<Card> deck;
char suit[] = {'h','d','c','s'};
char card[] = {'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
for (int j=0; j<13; j++) {
for (int i=0; i<4; i++) {
deck.push_back(new Card(card[j],suit[i]));
}
}
return 0;
}
还可以在西装和卡片中使用枚举代替字符,这将使其更加清晰。
关于c++ - 产生一副纸牌,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/234388/