Below is the 5 small C++ files, files names are in "Bold"
please put everything under one file "Solitaire.cpp"
please Put Card.h, Deck.h,Card.cpp,Deck.cpp under "solitaire.cpp", everything under 1 single file
thanks
Card.h
#ifndef CARD_H
#define CARD_H
#include<iostream>
using namespace std;
class Card {
private:
char rank, suit;
public:
Card();
Card(char r, char s);
void setCard(char r, char s);
int getValue();
void showCard();
};
#endif
Card.cpp
#include "Card.h"
Card::Card() {
rank = suit = ' ';
}
Card::Card(char r, char s) {
rank = r;
suit = s;
}
void Card::setCard(char r, char s) {
rank = r;
suit = s;
}
int Card::getValue() {
if (rank == 'A') {
return 1;
}
else if (rank == '2') {
return 2;
}
else if (rank == '3') {
return 3;
}
else if (rank == '4') {
return 4;
}
else if (rank == '5') {
return 5;
}
else if (rank == '6') {
return 6;
}
else if (rank == '7') {
return 7;
}
else if (rank == '8') {
return 8;
}
else if (rank == '9') {
return 9;
}
else if (rank == 'K') {
return 10;
}
else if (rank == 'Q') {
return 10;
}
else {
return 10;
}
}
void Card::showCard() {
cout << rank << suit << ".";
}
Deck.h
#ifndef DECK_H
#define DECK_H
#include "Card.h"
class Deck {
private:
Card deck[52];
int cardsCnt;
public:
Deck();
void refreshDeck();
Card deal();
void shuffle();
int cardsLeft();
void displayDeck();
};
#endif
Deck.cpp
#include "Deck.h"
Deck::Deck() {
char ranks[] = { 'A','1','2','3','4','5','6','7','8','9','J','Q','K' };
char suits[] = { 'S','H','D','C' };
int k = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 13; j++)
{
deck[k++] = Card(ranks[j], suits[i]);
}
}
cardsCnt = 52;
}
void Deck::refreshDeck() {
char ranks[] = { 'A','1','2','3','4','5','6','7','8','9','J','Q','K' };
char suits[] = { 'S','H','D','C' };
int k = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 13; j++)
{
deck[k++] = Card(ranks[j], suits[i]);
}
}
cardsCnt = 52;
}
Card Deck::deal() {
Card c = deck[cardsCnt - 1];
cardsCnt--;
return c;
}
void Deck::shuffle() {
srand(0);
for (int i = 0; i < cardsCnt; i++)
{
int r = i + (rand() % (52 - i));
Card temp = deck[i];
deck[i] = deck[r];
deck[r] = temp;
}
}
int Deck::cardsLeft() {
return cardsCnt;
}
void Deck::displayDeck() {
for (int i = 0; i < 52; i++) {
if (i % 13 == 0 && i != 0) {
cout << endl;
deck[i].showCard();
cout << " ";
}
else {
deck[i].showCard();
cout << " ";
}
}
}
Solitaire.cpp
#include "Deck.h"
#include <stack>
Deck deck;
void playGame();
bool isPrime(int val);
void printStackReverse(stack<Card> s);
int main()
{
int A;
while (true) {
cout << "Welcome to Solitaire Prime!\n1. A New Deck\n2) Display the Deck\n3) Shuffle the Deck\n4) Play the Solitaire game\n5) Exit the game\n\nEnter choice: ";
cin >> A;
switch (A) {
case 1:
deck.refreshDeck();
cout << "\nNow New deck is created\n";
break;
case 2:
cout << "\nDeck:\n";
deck.displayDeck();
cout << endl;
break;
case.