Print deck of cards for each suit

I've been given a starting code to create the card for each suits, so far it only shows the 13 cards for the Hearts deck, but I need to expand it to create the cards for all the suits. Other than put DIAMONDS, SPADE, CLUBS in the enum array, I'm at a lost of to how to display another deck. I also need to use the code I've been given.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 

#include "pch.h"
#include <iostream>

using namespace std;

#define NUMBER_OF_CARDS 52 

enum SUIT { HEARTS}; 

struct Card {
	SUIT suit;      // H, D, S, C        
	int value;      // A, 2,3,4,5,6,7,8,9,10, j,q,k        
	int score;      // A = 1, 2 = 2, Q = 10 
};

Card Pack[NUMBER_OF_CARDS]; 

void SetupPack(); 

void SetupHearts(); 



void displayPack(); 





int main() 
{        
	SetupPack();       
displayPack();

system("pause"); 
return 0;
} 
void SetupPack() 
{ 
	SetupHearts();

	
} 
void SetupHearts()
{
	for (int loop = 0; loop <= 12; loop++)
	{
		Pack[loop].suit = HEARTS;
		Pack[loop].value = loop + 1;
		Pack[loop].score = loop + 1;
	}
	// score for jack, queen, king       
	Pack[10].score = 10;
	Pack[11].score = 10;
	Pack[12].score = 10;
}




void displayPack() 
{        
	for (int loop = 0; loop < NUMBER_OF_CARDS; loop++)        
{               
	cout << " Suit = " << Pack[loop].suit;               
	cout << " Score = " << Pack[loop].score;               
	cout << " Value = " << Pack[loop].value;               
	cout << endl;        
} 
}
Last edited on
Your array can hold all 52 cards. So the hearts range from 0 - 12, the next start at 13 and so on.
but how would I write that to display diamonds, would I have to copy the void SetupHearts() and then change it to SetupDiamonds ()
Was all the code that you have posted given to you, or does it contain your additions? If yes, what?

Some things could/should be computed, if permitted.
1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include <iostream>

int main() 
{
    std::string suites[] { "He", "Di", "Sp", "Cl" };
    for ( int card=0; card < 52 ; ++card ) {
        int value = 1 + card % 13;
        int score = (value < 10) ? value : 10;
        std::cout << suites[card/13] << ' ' << value << ' ' << score << '\n';
    }
}

Don't worry I've figured it out
Topic archived. No new replies allowed.