c程序猜数字游戏源代码
# include & ltstdio.h & gt
# include & ltdos.h & gt
void main()
{
int z,z1,ia,ib,生命,易,石现;/*定义变量*/
int i1[4],I2[4];
char yesno
int a[8],b[8],x,y,I,j,c;
clr SCR();/*清空屏幕*/
选项:/*设置转到点*/
printf("请选择你喜欢的级别:\n 1表示容易\n 2表示难\n请输入1或2:");/*选择难度开始*/
scanf("%d ",& amp容易);
if(easy==1)
生活= 15;
其他
{
if(easy==2)
生命= 8;
其他
if(easy==416)
{
shua();/*调用小屏刷屏功能*/
printf("哇哈哈哈哈.......\n你选-=疯子=-模特!!!\ n ");
生命= 5;
getch();
}
其他
{
shua();/*调用小屏刷屏功能*/
printf(" * *错误...\n请重新输入...\ n ");
goto chooes
}
}
for(I = 0;我& lt3;I++)/*给变量赋值*/
{
I 1[I]= 0;
I2[I]= 0;
}
ia=0,IB = 0;
Do/*随机选择1-九千九百九十九的号码,弃1-999的号码,选择1000-九千九百九十九的号码*/
{
srand(time(NULL));
z =(rand()% 100)*(rand()% 100);/*随机选择*/
I 1[3]= z % 10;/*将随机数分成四份*/
I 1[2]= z/10% 10;
I 1[1]= z/100% 10;
I 1[0]= z/1000% 10;
}
while(z & lt;1000 | | I 1[0]= = I 1[1]| | I 1[2]| | I 1[0]= = I 1[3]| | I 1[1]= = I 1[2]| .
/*判断每个数字是否相同,如果相同,则再次输出*/
shua();/*调用小屏刷屏功能*/
printf("现在!!你有%d条命!!游戏开始!!\n”,生活);/*游戏开启*/
printf("请输入4个数字:\ n \ n ");
for(石现= 1;生活& gt0;人生-=1,石现++)/*人生决定尝试的次数*/
{
做
{
printf(" * ");
scanf("%d ",& ampz 1);
I2[3]= z 1% 10;/*将玩家输入的数字分成四份*/
I2[2]= z 1/10% 10;
I2[1]= z 1/100% 10;
I2[0]= z 1/1000% 10;
if(z 1 & gt;9999 | | z 1 & lt;1000 | | I2[0]= = I2[1]| | I2[0]= = I2[2]| | I2[0]= = I2[3]| | I2[1]= = I2[2]| | I2[1]= = I2[3]| | I2[2]= = I2[3]| | I2[0]= = 0)
/*判断玩家输入的每个数字是否不同,如果不同,重新输入*/
{
shua();/*调用小屏刷屏功能*/
printf(" \ n * *错误...\n请重新输入:\ n \ n ");
继续;
}
其他
打破;
}
while(1);/*将非零值设置为循环,直到中断*/
IB = 0;/*开始判断:正确数和错误数的个数(B)*/
if(I 1[0]= = I2[1])I b++;
if(I 1[0]= = I2[2])I b++;
if(I 1[0]= = I2[3])I b++;
if(I 1[1]= = I2[0])I b++;
if(I 1[1]= = I2[2])I b++;
if(I 1[1]= = I2[3])I b++;
if(I 1[2]= = I2[0])I b++;
if(I 1[2]= = I2[1])I b++;
if(I 1[2]= = I2[3])I b++;
if(I 1[3]= = I2[0])I b++;
if(I 1[3]= = I2[1])I b++;
if(I 1[3]= = I2[2])I b++;
for(ia=0,I = 0;我& lt4;I++)/*判断正确位置时的错数(A)*/
if(i1[i]==i2[i])
ia++;
gotoxy(60,石现+1),printf("%2d。%d * %dA%dB”,石现,z1,ia,IB);/*先前的输入显示在右侧*/
shua();/*调用小屏刷屏功能*/
if(z==z1)
{
printf(" \ n ");
打破;
}
其他
{
printf("你还有最后%d次生命...\n加油!请重试:\n\n ",life-1);
继续;
}
}
If(life==0)/*判断输赢*/
{
printf("答案是*%d*\n ",z);
printf(" * * *对不起你输了...***");
for(I = 10;我& gt0;我-)
{
声音(100 * I);
延时(1000000);
nosound();
}
}
其他
{
printf(" * * *太好了!!你赢了!!***");
for(I = 1;我& lt10;i++)
{
声音(100 * I);
延时(1000000);
nosound();
}
}
getch();
重试:
printf(" \ n \ n再次播放?y/n:");/*是否要重新开始*/
scanf("%s ",& ampyes no);
if(strcmp('y ',yesno)==0)
{
clr SCR();/*清空屏幕*/
goto chooes
}
其他
{
if(strcmp('n ',yesno)==0)
{
printf("\n下次见!...\ n ");
printf("请按任意键退出...");
getch();
}
其他
{
shua();
printf("抱歉,又输入了...\ n ");
转到重试;
}
}
}
Shua()/*刷小屏功能*/
{
int i_1,I _ 2;
for(I _ 1 = 0;I _ 1 & lt;50;i_1++)
{
for(I _ 2 = 0;i _ 2 & lt30;i_2++)
{
gotoxy(i_1,i_2),printf(" ");
}
}
gotoxy(1,1);
}