#ifndef HAND_H
#define HAND_H

typedef unsigned int uint;
typedef unsigned int const uintc;

/*
\brief Holding cards and their value and operations.

Since both dealers and players have hands the hand is
 its own object with its own perspective.
*/
class hand
{
public:

  /** Calculated the greatest value of the hand. */
  uintc calculate() const;

  /** Add a card to the hand. */
  void add(uintc card);

  /** The sum of cards excluding the first ace. */
  uint value;

  /** Has the hand got this non-unique card. */
  bool hasAce;

  /** Is the hand busted/lost? */
  bool const isbusted() const;

  /** Remove all cards from the hand. */
  void reset();

  /** Remove all cards from the hand and add the new card. */
  void reset(uintc card);

};


#endif



