Code:
#include <iostream>
#include <vector>
#include <time.h>
enum cardSuits{
HEARTS = 0, CLUBS, SPADES, DIAMONDS
};
enum cardValues{
TWO = 0, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE
};
class cpuPlayer{
std::vector <std::string> cpuHand;
std::vector <int> cpuHandPower;
};
class deck{
std::vector <std::string> originalDeck;
std::vector <int> originalDeckPower;
std::vector <std::string> shuffledDeck;
std::vector <int> shuffledDeckPower;
public:
deck();
void fillOriginalDeck();
};
deck::deck(){
originalDeck.reserve(52);
originalDeckPower.reserve(52);
shuffledDeck.reserve(52);
shuffledDeckPower.reserve(52);
}
void deck::fillOriginalDeck(){
originalDeck.clear();
originalDeckPower.clear();
bool cardCheck[4][13] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
for(int b = 0; b < 52; b++){
std::cout<<"\nB: " << b;
bool complete = false;
int suit = rand() % 4;
int value = rand() % 13;
std::cout<< "\nSuit:" << suit << "\nValue:" << value;
do{
if(cardCheck[suit][value] == 0){
complete = true;
std::string valueText = "";
std::string suitText = "";
switch(value){
case TWO:
originalDeckPower.push_back(TWO);
valueText = "Two";
break;
case THREE:
originalDeckPower.push_back(THREE);
valueText = "Three";
break;
case FOUR:
originalDeckPower.push_back(FOUR);
valueText = "Four";
break;
case FIVE:
originalDeckPower.push_back(FIVE);
valueText = "Five";
break;
case SIX:
originalDeckPower.push_back(SIX);
valueText = "Six";
break;
case SEVEN:
originalDeckPower.push_back(SEVEN);
valueText = "Seven";
break;
case EIGHT:
originalDeckPower.push_back(EIGHT);
valueText = "Eight";
break;
case NINE:
originalDeckPower.push_back(NINE);
valueText = "Nine";
break;
case TEN:
originalDeckPower.push_back(TEN);
valueText = "Ten";
break;
case JACK:
originalDeckPower.push_back(JACK);
valueText = "Jack";
break;
case QUEEN:
originalDeckPower.push_back(QUEEN);
valueText = "Queen";
break;
case KING:
originalDeckPower.push_back(KING);
valueText = "King";
break;
case ACE:
originalDeckPower.push_back(ACE);
valueText = "Ace";
break;
}
switch(suit){
case HEARTS:
suitText = "Hearts";
break;
case CLUBS:
suitText = "Clubs";
break;
case SPADES:
suitText = "Spades";
break;
case DIAMONDS:
suitText = "Diamonds";
break;
}
originalDeck.push_back(valueText + " of " + suitText);
}
else{
complete = false;
}
} while(!complete);
}
//this simply prints the deck, could've put it in a new function
for(int z = 0; z < originalDeck.size(); z++)
{
std::cout<<"\n" << originalDeck[z];
}
std::cout<<"\nNumber of Cards: "<< originalDeck.size();
}
int main(){
srand(time(NULL));
deck deckOne;
std::cout<<"here we go\n";
deckOne.fillOriginalDeck();
}