#include #include using namespace std; struct DieT { int sides{6}; unsigned int seed{1}; int value; }; void RollDieAndPrint(DieT dieA, DieT dieB); void InitDie(DieT & die, int sides); int GetDieValue(const DieT & die); int GetDieSides(const DieT & die); void RollDie(DieT & die); int main() { srand(static_cast(time(nullptr))); DieT die1, die2; InitDie(die1,6); InitDie(die2,6); cout << "Die 1 then Die 2" << endl; RollDieAndPrint(die1, die2); cout << endl; cout << "Die 2 then Die 1" << endl; RollDieAndPrint(die2, die1); return 0; } void InitDie(DieT & die, int sides){ if (sides > 1 and sides <= 100) { die.sides = sides; } die.seed = static_cast(rand()); RollDie(die); } int GetDieValue(const DieT & die){ return die.value; } int GetDieSides(const DieT & die) { return die.sides; } void RollDie(DieT & die) { die.value = rand_r(&die.seed) % die.sides + 1; } void RollDieAndPrint(DieT dieA, DieT dieB){ for(int i = 0; i < 10; ++i) { RollDie(dieA); RollDie(dieB); cout << setw(20) << GetDieValue(dieA) << setw(20) << GetDieValue(dieB) << endl; } }