#include<stdlib.h>
#include<stdio.h>
#include<time.h>
void display();//函数原型
void main()
{
printf("*********************************************************/n/n");
printf("/t/t/t猜数字/n/n");
printf("*********************************************************/n");
//对游戏规则的描述
printf("规则:你所猜测的数字为一个4位的,每一位数字都不重复的正/n");
printf("整数,如果你猜测数字的某一位和电脑数字的某一位大小相同而位/n");
printf("置不同得到1B,大小位置都相同得到1A。得到4A即为胜利。/n/n/n");
display();
}
void display()
{
int a[4],b[4],p,j,m,n,t,k;
char temp;
do
{
srand((unsigned)time(NULL));
t=(unsigned)time(NULL);
//对生成的随机数进行判断
while(1)
{
a[0]=rand()%10;
if(a[0]!=0)
{
break;
}
}
while(1)
{
k=0;
for(p=1;p<4;p++)
{
a[p]=rand()%10;
}
for(p=0;p<3;p++)
{
for(j=p+1;j<4;j++)
{
if(a[p]==a[j])
{
k++;
}
}
}
if(k==0)
{
break;
}
}
//对用户输入进行判断
while(1)
{
printf("/n请输入你所猜测的数字:");
scanf("%d",&j);
k++;
m=0;
n=0;
if(j>1000&&j<10000)
{
for(p=3;p>=0;p--)
{
b[p]=j%10;
j/=10;
}
//按游戏规则进行判断
for(p=0;p<4;p++)
{
if(a[p]==b[p])
{
m++;
continue;
}
for(j=0;j<4;j++)
{
if(a[p]==b[j])
{
n++;
break;
}
}
}
if(m==4)
{
printf("%dA%dB恭喜你,猜对了!/n",m,n);
printf("共计用时%d秒/n",(unsigned)time(NULL)-t);
printf("共计猜了%d次/n",k);
printf("成绩:");
if(k<=5&&(unsigned)time(NULL)-t<=30)
{
printf("优秀!好样的!");
}
else if((k>5&&k<=10)||((unsigned)time(NULL)-t>30&&(unsigned)time(NULL)-t<=60))
{
printf("中等!再接再励!");
}
else
{
printf("较差!继续努力!");
}
break;
}
else
{
printf("%dA%dB",m,n);
continue;
}
}
else
{
printf("您的输入不正确,请重新输入");
continue;
}
}
printf("/n要继续游戏吗?(Y继续,其他任意键退出)");
fflush(stdin);
temp=getchar();
}
while(temp=='Y'||temp=='y');
}