/* * dice.hpp * * Created on: Sep 23, 2010 * Author: Michael J. Fischer * for use in Yale course CPSC 427a, Fall 2010 */ #pragma once #include "random.hpp" class Dice { private: int numDice_; // number of dice int numSides_; // number of sides per die Random* rnd_; // random number generator int* die_; // array of dice. Face values in range [1, numSides_] int sum_; // sum of faces on die public: Dice(int numDice, int numSides, unsigned seed) { numDice_ = numDice; numSides_ = numSides; rnd_ = new Random(numSides, seed); die_ = new int[numDice]; for (int k = 0; k < numDice; k++) die_[k] = 1; // smallest legal face sum_ = numDice_; // smallest possible sum } ~Dice() { delete[] die_; delete rnd_; } void roll() { sum_ = 0; for (int k = 0; k < numDice_; k++) { die_[k] = rnd_->gen() + 1; sum_ += die_[k]; } } int getDie(int k) const { return die_[k]; } int getSum() const { return sum_; } };