【发布时间】:2019-08-22 13:30:03
【问题描述】:
我的代码处理两个骰子(一个 10 面“公平”骰子和一个 20 面“公平”骰子),并使用类、数组和随机数生成器生成两个骰子的随机掷骰及其总和,但所有我的代码吐出是“你滚:18”。这不是很随机。
#include <iostream>
#include <stdlib.h>
using namespace std;
class Dice
{
private:
int rollDice[2] = {};
public:
void setval1(int x)
{
rollDice[0] = x;
}
void setval2(int y)
{
rollDice[1] = y;
}
double getVal1()
{
return rollDice[0];
}
double getVal2()
{
return rollDice[1];
}
};
int main()
{
Dice a;
a.setval1(rand()%9+1);
a.setval2(rand()%19+1);
cout << "You rolled: " << a.getVal1() + a.getVal2();
}
【问题讨论】:
-
你必须看到随机生成器
-
您应该先致电
srand。此外,从 C++11 开始,您应该使用<random>。