c程序猜数字游戏源代码

我们刚完成课程设计,我刚用过,已经过了,用TC2.0运行。

# 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);

}