完整代码如下:
编译器:VS2012.
原理:生成随机数,从随机数分布概率着手设定达标速度与胜率.现在的胜率设置比较极端,请自行调整。
#include<time.h>
#include<iostream>
using namespace std;int randNum(int rangeMin,int rangeMax)
{
return static_cast<double>(rand())/(RAND_MAX+1)*(rangeMax-rangeMin+1)+rangeMin;
}int main()
{
const int member = 4;
int player[member] = {0};
int turn[member] = {0};
int cnt = 0;
bool state = false;
while(cnt < 100000)
{
for(int i=0;i!=member;i++)
{
switch (i)
{
case 0:
{
if(player[i] > 3000)
break;
player[i]+=randNum(-1,400);
turn[i]++;
break;
}
case 1:
{
if(player[i] > 3000)
break;
player[i]+=randNum(-50,100);
turn[i]++;
break;
}
case 2:
{
if(player[i] > 3000 || player[i] < 2100000000)//21E
break;
player[i]+=randNum(-100,1);
turn[i]++;
break;
}
case 3:
{
if(!state)
cout << "P4你必然无法到达目标分数."<< endl;
else
break;
state = true;
break;
}
}
}
cnt++;
}
cout << endl;
cout << "运行游戏:" << cnt << "次" << endl;
for(int i=0;i!=member-1;i++)
{
cout << "第" << turn[i] <<"回,P"<< i+1
<< (player[i]>=3000?"达到目标点数3000点.":"还是无法达到目标点数3000点.") << endl;
}
return 0;
}