gpt4 book ai didi

c++ - 在第二次调用中生成不同的随机数

转载 作者:行者123 更新时间:2023-11-28 00:21:27 25 4
gpt4 key购买 nike

<分区>

我正在尝试用 C++ 实现掷骰子游戏,规则如下。所以我创建了一个函数,它会为我生成两个数字,有时这个函数需要被调用两次,但是当它被第二次调用时,它会给我第一次给我的相同随机数。

我想随机化我在第二次调用 rollDice() 函数时得到的数字。我该怎么做?

示例输出 1:
玩家掷出 3 + 4 = 7
玩家赢了!

示例输出 2:
玩家掷出 2 + 2 = 4
积分为4
玩家掷出 2 + 2 = 4玩家赢了!

示例输出 3:
玩家掷出 1 + 5 = 6
积分为6
玩家掷出 1 + 5 = 6
玩家赢了!

游戏规则:规则:玩家掷两个 6 面骰子,如果它们的总和为 711,则玩家获胜。如果总和是 2,3 或 12,他们就输了。如果它是4,5,6,8,9,10,12,它就变成了一个“点”,玩家必须再次掷骰子。然后玩家继续滚动直到他再次击中“点”并且他获胜如果他击中 7,则松手。

代码:

#include<iostream>
#include<ctime>
#include <cstdlib>

using namespace std;

//Generating two rand numbers from 1 to 6
int rollDice()
{
srand(time(0));
int face1 = 1 + rand()%6;
int face2 = 1 + rand()%6;
int sum = face1 + face2;

cout << "Player rolled " << face1 << " + " << face2 << " = " << sum << endl;
return sum;
}

string gameStatus; //Hold status of game; WIN, CONTINUE, LOST
int sumOfDice = rollDice();
int point = 0; //This will hold sum of dice if it's default case defined below in Switch.

int main()
{
switch(sumOfDice)
{
case 7:
case 11:
gameStatus = "WIN";
break;

case 2:
case 3:
case 12:
gameStatus = "LOST";
break;

default:
gameStatus = "CONTINUE";
point = sumOfDice;
cout << "Point is " << point << endl;
}

while (gameStatus == "CONTINUE")
{
int rollAgain = rollDice();
if (rollAgain == point)
gameStatus = "WIN";
else if (rollAgain == 7)
gameStatus = "LOST";
}
if (gameStatus == "WIN")
cout << "Player won!";
if (gameStatus == "LOST")
cout << "Player lost!";
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com