在功能中制作一副牌

时间:2016-02-25 00:24:36

标签: c

我试图制作能够制作一副牌的功能。

我必须使用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张卡。

2 个答案:

答案 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]