gpt4 book ai didi

C++ 错误的随机数

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:15 25 4
gpt4 key购买 nike

<分区>

我正在创建一台机器,该机器可以生成带有随机组件的霰弹枪,这些随机组件会影响枪支的整体质量。我在生成构成霰弹枪的随机部件时遇到问题。必须生成 4 个部分。当我创建这些函数中的每一个时,我单独测试了它们并且它们都有效但是当我尝试将它们与 createChromo() 函数放在一起时,数字是单独随机的。我应该得到像 2131 和 1332 这样的结果,但我一直得到 1111 或 1112 或 2221 或 2222....这是代码:

int generateButt()
{
srand(unsigned(time(NULL)));
int buttType = rand() % 3 + 1;

if(buttType == 1)
{
accuracy = rand() % ((5 - 2) + 2) / 10.0;

fireRate = fireRate - 0.3;
}
if(buttType == 2)
{
accuracy = rand() % ((8 + 5) + 5)/ 10.0;

fireRate = fireRate - 0.2;
}
if(buttType == 3)
{
accuracy = rand() % ((11 + 8) + 8) / 10.0;

fireRate = fireRate - 0.1;
}

return buttType;
}
int generateBarrel()
{
srand(unsigned(time(NULL)));
int barrelType = rand() % 3 + 1;

if(barrelType == 1)
{
range = rand() % (16 - 5) + 5;

power = power + 3;
}
if(barrelType == 2)
{
range = rand() % (21 - 16) + 16;

power = power + 1;
}
if(barrelType == 3)
{
range = rand() % (26 + 21) + 21;

power = power - 1;
}

return barrelType;
}
int generateBullet()
{
srand(unsigned(time(NULL)));
int bulletType = rand() % 3 + 1;

if(bulletType == 1)
{
power = rand() % (16 - 10) + 10;

range = range + 5;
}
if(bulletType == 2)
{
power = rand() % (26 - 16) + 16;

range = range + 1;
}
if(bulletType == 3)
{
power = rand() % (35 - 26) + 26;

range = range - 2;
}

return bulletType;
}
int generateAction()
{
srand(unsigned(time(NULL)));
int actionType = rand() % 2 + 1;

if(actionType == 1)
{
fireRate = 1.5;

accuracy = accuracy + 0.2;
}
if(actionType == 2)
{
fireRate = 2.0;

accuracy = accuracy - 0.1;
}

return actionType;
}

void createChromo(int a, int b, int c, int d)
{
cout <<a<<b<<c<<d<<"\n";
}

int main()
{
for(int i = 0; i < popSize; i++)
createChromo(generateButt(), generateBarrel(), generateBullet(), generateAction());
system("pause");
return 0;
}

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