Test 1: Check correct assignment of dice values and selection (0/2) failed
#include <string>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
//#################################################################################################
class Dice{
private:
int value;
public:
//Randomly assigns a value between from 1 to 6 to the dice.
void roll(){
value = rand() % 6 + 1;
}
int reveal() {return value;}
void setValue(int value) {this->value = value;}
};
//#################################################################################################
const int HAND_SIZE = 5;
class Hand {
public:
Dice dices[HAND_SIZE];
//Display the value of the five dice
void show(){
for(int i = 0; i < HAND_SIZE; i++){
cout << dices[i].reveal() << " ";
}
cout << endl;
}
void play(){
for(int i = 0; i < HAND_SIZE; i++){
dices[i].roll();
}
}
Dice* getDice(int diceNum){
if(diceNum >= 0 && diceNum < HAND_SIZE){
return &dices[diceNum];
}
return nullptr;
}
//selection is the string of dice numbers that the player wants to keep.
//For example, "125" means that player wants to keep the first, second, and fifth dice, and roll the rest.
void setSelection(string selection){
bool keep[HAND_SIZE] = {false};
for(char c : selection){
int index = c - '1';
if(index >= 0 && index < HAND_SIZE){
keep[index] = true;
}
}
for(int i = 0; i < HAND_SIZE; i++){
if(!keep[i]){
dices[i].roll();
}
}
}
Hand(){
for(int i = 0; i < HAND_SIZE; i++){
dices[i].roll();
}
}
private:
};
Trending now
This is a popular solution!
Step by step
Solved in 2 steps