#ifndef DECK_H
#define DECK_H

typedef unsigned int uint;
typedef unsigned int const uintc;

/*!
\brief Generic deck.
  
  The client derives this class.

  Shuffling and other issues are hidden.
  The cards are represented by integers. However
  you can abstract. For example if suit is not 
  important then 2 could represent a 2 of spades, 
  clubs, hearts or diamonds.
*/
class deck
{
public:

  /** Cleanup. */
  virtual ~deck() {}

  /** Draw a card from the deck. */
  virtual uintc draw()=0;

};


#endif


