【发布时间】:2017-08-31 21:24:23
【问题描述】:
我正在用 C++ 创建 Yahtzee。骰子掷出一个数字,根据掷出的数字,通过从 randNum 中减去 1 来创建一个位置(因为数组是从零开始的)。然后使用该位置,我想增加数组中的适当元素以表示我已经滚动了该特定数字。例如:掷骰子 1,1,1,5,6,4。我的数组应该显示:3,0,0,1,1,1。使用我当前的代码,元素不会增加。任何帮助表示赞赏。
标题:
class dice {
public:
dice();
void rollDice();
int getRoll(int diceNumber);
//This is the array that tells us how many of one number we have
//ex) element 4 belongs to the #5 so if there is a 3 stored in element 4 that means we rolled 3 5's
int arrayOfEachNumberRolled[5]{0,0,0,0,0};
~dice();
}
来源:
void dice::rollDice(){
//roll a random number and store it in the appropriate location
int randNum;
for(int i = 0; i < 6; i++){
//Get the new random number between 1 & 6
randNum = rand() % 6 + 1;
//set the appropriate dice
if(i == 0){//dice1
dice1->set(randNum);
arrayOfEachNumberRolled[randNum - 1]+=1;
}
else if(i == 1){//dice 2
dice2->set(randNum);
arrayOfEachNumberRolled[randNum - 1]++;
}
else if(i == 2){//dice 3
dice3->set(randNum);
arrayOfEachNumberRolled[randNum - 1]++;
}
else if(i == 3){//dice 4
dice4->set(randNum);
arrayOfEachNumberRolled[randNum - 1]++;
}
else if(i == 4){//dice 5
dice5->set(randNum);
arrayOfEachNumberRolled[randNum - 1]++;
}
else if (i == 5){//dice 6
dice6->set(randNum);
arrayOfEachNumberRolled[randNum - 1]++;
}
}
}
【问题讨论】: