我试图制作能够制作一副牌的功能。
我必须使用struct定义一张牌与套装和面部的对应关系,然后将结构应用于制作一副牌的功能。 它必须打印出这样的套牌:
1H, 2C, 3D, 4S,... // the letters being for spades, hearts, etc.
到目前为止,这是我的代码:
enum Value{
C, D, H, S
};
enum Suit{
1, 2, 3, 4, 5, 6, 7, 8, 9, J, Q, K, A
};
struct card {
Value val;
Suit suit;
};
void originalDeck (struct card cards[]){
char deck[DeckSize][SuitSize];
for (int i = 0; i < DeckSize ; ++i) {
for (int j = 0; j < SuitSize; ++j) {
}
}
}
我遇到了将面部分配给卡片值的for循环问题。我要么得到无限循环,要么只打印1张卡。
答案 0 :(得分:0)
在第二个 for 语句后添加:
printf("%1c%c ",card.suit,card.val);
您还需要分配DeckSize和SuitSize,最好使用define语句,因为它们是常量:
#define DeckSize 4
#define SuitSize 13
答案 1 :(得分:0)
我会让甲板成为一组整体
0 = ace of clubs
1 = 2 of clubs
...
50 = Queen of spades
51 = King of spades
显示卡片
char suit = "CDHS"[card % 13]
char value="A23456789TJQK"[card%4]