C++ 设置私有数组的值

C++ Setting Values of a Private Array

我正在用 C++ 创建 Yahtzee。骰子掷出一个数字,根据它们掷出的数字,通过从 randNum 中减去 1 创建一个位置(因为数组是基于零的)。然后使用那个位置我想增加数组中的适当元素以表示我已经滚动了那个特定的数字。例如:掷骰子 1、1、1、5、6、4。我的数组应该显示:3,0,0,1,1,1。使用我当前的代码,元素不会递增。任何帮助表示赞赏。

header:

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]++;
        }
    }
}

您需要一个包含 6 个元素的数组,而不是 5 个。更改

int arrayOfEachNumberRolled[5]{0,0,0,0,0};

int arrayOfEachNumberRolled[6]{0,0,0,0,0,0};