A Dice class representing a set of 6-sided dice that can be rolled by a player, is to be implemented as below:Member Descriptionprivate: int* diceValues an array of all dice values rolledprivate: int count length of diceValues arrayDice(int count) constructs a dice roller to roll the given # of dice; all dice initially have the value of 6virtual int getCount() const returns the number of dice managed by this dice roller, as passed to the constructorvirtual int getValue(int index) const returns the die value (1-6) at the given 0-based indexvirtual void roll(int index) rolls the given die to give it a new random value from 1-6virtual int total() const returns the sum of all current dice values in this dice rollervirtual string toString() const returns string of dice values, e.g. "{4, 1, 6, 5}"ostream& operator <<(ostream& out, Dice& dice) prints the given dice in its toString format
Question
A Dice class representing a set of 6-sided dice that can be rolled by a player, is to be implemented as below:Member Descriptionprivate: int* diceValues an array of all dice values rolledprivate: int count length of diceValues arrayDice(int count) constructs a dice roller to roll the given # of dice; all dice initially have the value of 6virtual int getCount() const returns the number of dice managed by this dice roller, as passed to the constructorvirtual int getValue(int index) const returns the die value (1-6) at the given 0-based indexvirtual void roll(int index) rolls the given die to give it a new random value from 1-6virtual int total() const returns the sum of all current dice values in this dice rollervirtual string toString() const returns string of dice values, e.g. "{4, 1, 6, 5}"ostream& operator <<(ostream& out, Dice& dice) prints the given dice in its toString format
Solution
Sure, here is a basic implementation of the Dice class in C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <sstream>
class Dice {
private:
int* diceValues;
int count;
public:
Dice(int count) : count(count) {
diceValues = new int[count];
for (int i = 0; i < count; i++) {
diceValues[i] = 6;
}
}
virtual int getCount() const {
return count;
}
virtual int getValue(int index) const {
return diceValues[index];
}
virtual void roll(int index) {
srand(time(0));
diceValues[index] = rand() % 6 + 1;
}
virtual int total() const {
int sum = 0;
for (int i = 0; i < count; i++) {
sum += diceValues[i];
}
return sum;
}
virtual std::string toString() const {
std::ostringstream oss;
oss << "{";
for (int i = 0; i < count; i++) {
oss << diceValues[i];
if (i != count - 1) {
oss << ", ";
}
}
oss << "}";
return oss.str();
}
friend std::ostream& operator<<(std::ostream& out, Dice& dice) {
out << dice.toString();
return out;
}
};
This class has a constructor that initializes the diceValues array with the given count and sets all dice values to 6. The getCount, getValue, roll, total, and toString methods are implemented as described. The << operator is overloaded to print the dice in its toString format.
Similar Questions
A 6-sided dice is rolled one time. Let A and B represent the following events: A = rolling a 6, and B = rolling a 5. These two events are because , and the probability of event A or B happening is .
Imagine rolling a six sided die, the sample space isa. {1, 2, 3, 4}b. {1, 2, 3, 4, 6}c. {1, 2, 3, 4, 5, 6}d. {1, 2}
Create a tree diagram for rolling three six-sided dice, where the outcomes are {Rolling a 6, not rolling a 6} for each six sided dice. What is the probability of rolling 3 6's?
What is the sample space of a six-sided dice roll? 5 5 1 1 to 6 6 1 1 and 6 Infinity
If you roll a 6-sided die 6 times, what is the best prediction possible for the number of times you will roll an even number?
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.