C++ 为什么赢了';这些数字不是随机的吗?
我一直在编写一个21点游戏,它几乎完成了开发的第一阶段。我几乎完成了,唯一的问题是在这部分生成的随机数:C++ 为什么赢了';这些数字不是随机的吗?,c++,random,numbers,srand,C++,Random,Numbers,Srand,我一直在编写一个21点游戏,它几乎完成了开发的第一阶段。我几乎完成了,唯一的问题是在这部分生成的随机数: if(x.hit == 1) { if (x.userShowCardThree == 0) { x.userShowCardThree = 1 + (rand()%11); int dealerHit1 = x.userShowCardThree; x.userTota
if(x.hit == 1) {
if (x.userShowCardThree == 0) {
x.userShowCardThree = 1 + (rand()%11);
int dealerHit1 = x.userShowCardThree;
x.userTotal += dealerHit1;
x.cardCount++;
}
else {
if (x.userShowCardFour == 0) {
x.userShowCardFour = 1 + (rand()%11);
int dealerHit2 = x.userShowCardFour;
x.userTotal += dealerHit2;
x.cardCount++;
}
else {
if (x.userShowCardFive ==0) {
x.userShowCardFive = 1 + (rand()%11);
int dealerHit3 = x.userShowCardFive;
x.userTotal += dealerHit3;
x.cardCount++;
}
}
}
与最终部分中生成的编号不同:
cout << "You had a total of: " << x.userTotal << endl;
cout看起来您有两个游戏对象的实例,它们都被命名为x
int main() {
srand(time(0));
Game x;
...
cout << "You had a total of: " << x.userTotal << endl;
main()中的x与startGame()中的x不同,因为两者都是独立的游戏对象。那么,你是在问为什么程序的一部分中生成的随机数与另一部分中生成的随机数不同?我不希望在第二部分中生成随机数,我想我想把程序的一部分中的随机数转换成一个静态变量,以后可以使用。很难弄清楚你到底在问什么,但我怀疑你是否想要一个静态变量。您已经将结果存储在一个变量中,如果您想访问它,只需访问它即可。好的,我将随机数存储到userTotal变量中。然后,当我稍后尝试访问它以打印出userTotal是什么时,userTotal与它应该是什么完全不同,即userShowCardOne+userShowCardTwo等等。。
int main() {
srand(time(0));
Game x;
...
cout << "You had a total of: " << x.userTotal << endl;
int startGame() {
Game x;
...
if(x.hit == 1) {
if (x.userShowCardThree == 0) {
x.userShowCardThree = 1 + (rand()%11);
int dealerHit1 = x.userShowCardThree;
x.userTotal += dealerHit1;
x.cardCount++;