我先寫個梗概,妳給分後,我再補齊!
#include<iostream>
using namespace std;
#include <ctime>
//Random
class Random
{
public:
Random()
{
std::srand(static_cast<unsigned>(std::time(0)));
}
unsigned getRandomNumber(int limit) const
{
return std::rand() % limit;
}
};
//Card
class Card
{
public:
enum Suit
{
Spades ,Hearts, Diamonds, Clubs, //黑桃,紅桃,方塊,梅花
};
enum Rank
{
Deuce, Trey, Four, Five, Six, Seven, //2,3,4,5,6,7
Eight, Nine, Ten, Jack, Queen, King, Ace, //8,9,10,J,Q,K,A,
};
Card(Suit s, Rank r):suit(s), rank(r) {}
Suit getSuit() const
{
return suit;
}
Rank getRank() const
{
return rank;
}
bool equals(Card const &c) const
{
return (c.getSuit() == this->getSuit()) &&
(c.getRank() == this->getRank());
}
private:
Suit const suit;
Rank const rank;
Card(Card const &);
};
//Deck
class Deck
{
public:
static int const numberOfSuits = 4;
static int const numberOfRanks = 13;
static int const numberOfCards = numberOfSuits * numberOfRanks;
Deck()
{
//...
}
~Deck()
{
//...
}
void shuffle() const
{
//...
}
Card const *getNextCard() const
{
//...
}
private:
Card **array;
mutable int index;
static Random rand;
Deck(Deck const &);
};
int main()
{
//...
return 0;
}