【发布时间】:2012-09-05 21:46:01
【问题描述】:
我创建了以下函数来为骰子游戏创建随机数
#include <iostream>
#include <ctime>
#include <cstdlib>
#include "dice.h"
#include "display.h"
using namespace std;
int die[6][10];
void dice(int times, int dice){
int r;
for(int x=0;x<times;x++){
for(int x=0;x<dice;x++){
srand(time(0));
r=(rand() % 5);
die[r][x]+=1;
cout<<"Die #"<<x+1<<" rolled a "<<r<<endl;
}
}
}
但它不会重新播种。它只是为每个骰子输出相同的数字。有谁知道我该如何解决?
【问题讨论】:
-
还要注意,
rand() % 5周围不需要括号。此外,该表达式产生从 to 到 4 的值,因此die[5]永远不会受到打击。为避免此类错误,请使用常量来定义面数(而不是硬编码 6 和 5),并在数组定义中使用该常量并作为除数。