Title: Card Game Simulation using Stack and Deck
Description:
Create a program that simulates a simple card game using a stack and a deck of cards. The objective of the game is to implement basic card manipulation operations using stacks and to showcase the fundamental principles of a deck-based game.
Suggested list of data structures:
1. Use a struct or class to store data about each card:
struct Card {
string suit;
string rank;
}
2. Use the following arrays or an alternative data structure for each of the following:
a. Deck: An array to store the initially created deck of cards
Card deck[52]
b. Suits: An array to store the list of suits
e.g., string suits[] = {“Hearts”, “Diamonds”, “Clubs”, “Spades”}
c. Ranks: An array to store the following ranks:
string ranks[] = {“2”, “3”, “4”, “5”, “6”, “7”, “8”,”9″,”10″,”Jack”,”Queen”,”King”, “Ace”}
d. A stack to store the cards to be dealt.
Struct cardsStack {}
e. An array named hand that tracks 5 cards (handSize) given to the player.
3. You may also need to declare the following integer values:
a. numberOfCards = 52
b. numberOfRanks = 13
c. numberOfSuits = 4
d. handSize = 5
Include the following functions:
1. Create an array of type Card, which holds a deck of standard playing cards (52 cards: 4 suits – hearts, diamonds, clubs, spades; each suit with cards 2 through 10, Jack, Queen, King, Ace).
2. Shuffle: randomly shuffle the deck of cards.
3. Store the cards in a stack using push.
4. DealCards: pop 5 cards from the deck of cards into an array of cards (hand)
e.g., Hand[handSize]
5. Create a function to evaluate the user’s hand by adding the corresponding values:
The total value for a hand of 5 cards is between 11 and 69.
6. Generate a random number between 11 and 69 to represent the value of 5 cards played by the computer.
7. Compare the randomly generated value that represents the computer’s score to the total value of cards held in the player’s hand. The higher score wins.
Output:
1. Print the deck of cards before shuffling
2. Print the deck of cards after shuffling
3. Print the player’s hand and the randomly generated score for the computer
4. Evaluate and print the winner.