有点问题:就是结果2次调用随机函数的值都一样。
就是说。第一次2。那么第二个也是2。为什么不是其他的呢?
#include <iostream.h>
#include <stdlib.h>
#include <ctime>
char shuru(void)
{
char dx;
cout<<"请输入‘d或D’就是‘大’;输入‘x或X’就是‘小’\n";
cin>>dx;
if (dx!='d'&&dx!='D'&&dx!='x'&&dx!='X')
while(1)
{
cout<<"输入有误!只能‘d’‘D’‘x’‘X’\n";
cout<<"重新输入:";
cin>>dx;
if (dx=='d'&&dx=='D'&&dx=='x'&&dx=='X') break;
}
return dx;
}
int shuzi(void)
{
int i;
int sum=0;
srand((unsigned)time(0));
for(i=0;i<rand()%50;i++)
sum+=i+789;
srand(sum);
return rand()%5+1;
}
void shu_ying(int sum,char dx)
{
if(dx=='d'||dx=='D')
{
if(sum>6) cout<<"你赢了!恭喜你!\n";
else cout<<"你输了!不要气悔!\n";
}
else if(dx=='x'||dx=='X')
{
if(sum<6) cout<<"你赢了!恭喜你!\n";
else cout<<"你输了!不要气悔!\n";
}
else cout<<"你输了!不要气悔!\n";
}
void main()
{
int tou1,tou2;
int sum=0;
char dx,yn;
int sf;
cout<<"****************"<<"骰子游戏"<<"****************"<<"\n\n";
cout<<"游戏规则如下:\n";
cout<<"1. 有2次机会投;\n";
cout<<"2. 开始选‘大’或‘小’;\n";
cout<<"3. 如果选‘大’那么大于6点赢;\n";
cout<<"4. 如果选‘小’那么小于6点赢;\n";
cout<<"5. 如果是其他结果那么就是你输了!\n\n";
cout<<"那么现在开始了!\n";
do{
dx=shuru();
tou1=shuzi();
cout<<"第一个数为:"<<tou1<<"\n";
tou2=shuzi();
cout<<"第二个数为:"<<tou2<<"\n";
sum=tou1+tou2;
cout<<"你的数字总数为: "<<sum<<"\n";
shu_ying(sum,dx);
cout<<"是否还要来一局!按'Y'就继续;按'N'结束!\n";
cin>>yn;
if(yn=='y'||yn=='Y') sf=1;
else sf=0;
}while(sf);
}