class CardDeck
{
private:
int cards[52], i;
int currentCard;
public:
CardDeck(void);
void Shuffle(void);
int GetCard(void);
void PrintCard(int c);
// test
void Print(int c)
{
cout << cards[c] << "\t" ;
}
};
CardDeck::CardDeck(void)
{
int i;
for (i=0;i<52;i++)
cards[i] = i;
currentCard = 0;
}
int CardDeck::GetCard()
{
currentCard=currentCard+1;
return cards[currentCard-1];
}
void CardDeck::PrintCard (int c)
{
// bug: cannot output the value 10
char face, fsort;
if ((c+1)%13==1) face='A';
else if ((c+1)%13==11) face='J';
else if ((c+1)%13==12) face='Q';
else if ((c+1)%13==0) face='K';
else face=char((c+1)%13+48);
if (c>=0&&c<=12)
fsort = char(5) ;
else if (c>12&&c<=25)
fsort = char(4);
else if (c>25&&c<=38)
fsort = char(3);
else
fsort = char(6);
void CardDeck::Shuffle()
{
static RandomNumber rnd;
int i, temp, x;
for (i=0;i<52;i++)
{
x = rnd.Random(51);
temp = cards[i];
cards[i] = cards[x];
cards[x] = temp;
}
currentCard = 0;
}
void DealHand(CardDeck& d, int n)
{
int i, j, temp;
int icard[52];
for (i=0;i<n;i++)
{
icard[i] = d.GetCard();
}
for (i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
if (icard[i]>icard[j])
{
temp = icard[i];
icard[i] = icard[j];
icard[j] = temp;
}
}
}
for (i=0;i<n;i++)
{
d.PrintCard(icard[i]);
}
}
void main()
{
int i;
CardDeck card;
card.Shuffle();
// for (i=0;i<52;i++) card.Print(i);
cout << "Please input the number of cards you want to get:" ;
cin >> i ;