2016-02-25 52 views
-2

我試圖做一個功能,使一副牌的甲板。製作的卡在功能

我必須定義一個卡是與西裝和臉部使用結構是什麼,然後該結構適用於使一副牌的功能。 它打印出這樣的平臺:

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) { 

    } 
} 

} 

我有問題的爲分配面孔的價值循環牌。我要麼獲得無限循環,要麼只打印1張卡片。

+3

有什麼問題嗎? – Annabelle

+2

你的西裝,價值枚舉是向後.... –

+0

不應該在甲板是「結構牌」 S數組,而不是字符數組?另外你在嵌套循環內做什麼? – bruceg

回答

0

第二語句後添加:

printf("%1c%c ",card.suit,card.val); 

您還需要指定DeckSize和SuitSize,最好定義語句完成的,因爲它們是常數:

#define DeckSize 4 
    #define SuitSize 13 
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]