#include <stdlib.h>
#include "Dice.h"
#include <time.h>

Die::Die(unsigned int faces)
:	_faces(faces)
{
}

Die::Die (const Die &d)
:	_faces(d._faces)
{
}

Die::~Die()
{	// nothing
}

Die & Die::operator = (const Die &d)
{	_faces = d._faces;
	return *this;
}


int Die::roll()
{	return rand() % _faces + 1;
}

void Die::randomize(int seed)
{	if (seed == 0)
	{	time_t now = time(NULL);
		srand(now % 32763);
	}
	else
		srand(seed);
};

void Die::setFaces(unsigned int faces)
{	_faces = faces;
}

Dice::Dice(unsigned int howMany, unsigned int faces)
:	_elements(howMany, Die(faces))
{//	Array<Die> Elements(howMany);
//	for(int i = 0; i< howMany; i++)
//		Elements[i].setFaces(faces);
//	_elements = Elements;
}

Dice::Dice (const Dice &d)
:	_elements(d._elements)
{//	_elements = d._elements;		
}

Dice::~Dice()
{	// nothing
}

Dice & Dice::operator = (const Dice &d)
{	_elements = d._elements;	
	return *this;	
}


Array<unsigned int> Dice::roll()
{	Array<unsigned int> result(_elements.length());
	for (int i = 0; i<_elements.length(); i++)
		result[i] = _elements[i].roll();
	return result;
}

void Dice::randomize(int seed)
{	if (seed == 0)
	{	time_t now = time(NULL);
		srand(now % 32763);
	}
	else
		srand(seed);
}


