我非常是 C++ 的新手,我还没有完全理解基本概念,但我的教授希望我们编写一个算法来洗牌和展示一副纸牌和一副牌需要表示为二维数组。
但是我在模拟一副纸牌时遇到了麻烦!
#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','T','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;
}
我看过很多带类(class)的卡片类(class),但我什至不确定我们是否会在本学期学习这些类(class)。
最佳答案
使用一个简单的结构,您可以像这样编辑您的代码:
#include <iostream>
#include <vector>
using namespace std;
struct Card {
char suit, number;
Card(char aSuit, char aNumber) : suit(aSuit), number(aNumber) { }
};
int main() {
vector<Card> deck;
char suit[] = {'h','d','c','s'};
char num[] = {'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(Card(suit[i], num[j]);
}
}
// now, deck[0] to deck[51] hold all the cards
// first card's suit is deck[0].suit, number is deck[0].number
return 0;
}
关于c++ - 洗牌?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13239319/